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

  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • Disney Pets and Animals

    Disney Pets

    29 ŞUBAT 2012
  • lilstevie89

    lilstevie89

    25 Mart 2011