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

  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012