SORU
24 AĞUSTOS 2009, PAZARTESİ


Python birim temel ve alt sınıf test

Ben şu anda test kümesini paylaşan birkaç birim testleri var. İşte size bir örnek:

import unittest

class BaseTest(unittest.TestCase):

    def testCommon(self):
        print 'Calling BaseTest:testCommon'
        value = 5
        self.assertEquals(value, 5)

class SubTest1(BaseTest):

    def testSub1(self):
        print 'Calling SubTest1:testSub1'
        sub = 3
        self.assertEquals(sub, 3)


class SubTest2(BaseTest):

    def testSub2(self):
        print 'Calling SubTest2:testSub2'
        sub = 4
        self.assertEquals(sub, 4)

if __name__ == '__main__':
    unittest.main()

Yukarıda çıktı

Calling BaseTest:testCommon
.Calling BaseTest:testCommon
.Calling SubTest1:testSub1
.Calling BaseTest:testCommon
.Calling SubTest2:testSub2
.
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK

Bir şekilde ilk testCommon denir böylece yukarıda yeniden yazmak var mı?

DÜZENLEME: Yukarıda 5 testler yerine, SubTest1 sadece 4 testleri, 2 ve SubTest2 başka 2 çalıştırmak istiyorum. Python unittest kendi özgün BaseTest çalışıyor gibi görünüyor ve bunun olmasını engellemek için bir mekanizma lazım.

CEVAP
24 AĞUSTOS 2009, PAZARTESİ


Ortak testleri ile sınıf değil bu yüzden Birden çok devralma kullanın, deneme durumu kendisi devralır.

import unittest

class CommonTests(object):
    def testCommon(self):
        print 'Calling BaseTest:testCommon'
        value = 5
        self.assertEquals(value, 5)

class SubTest1(unittest.TestCase, CommonTests):

    def testSub1(self):
        print 'Calling SubTest1:testSub1'
        sub = 3
        self.assertEquals(sub, 3)


class SubTest2(unittest.TestCase, CommonTests):

    def testSub2(self):
        print 'Calling SubTest2:testSub2'
        sub = 4
        self.assertEquals(sub, 4)

if __name__ == '__main__':
    unittest.main()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • PamtheBlamofficial

    PamtheBlamof

    31 Aralık 2010
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011