【发布时间】:2017-12-18 09:18:29
【问题描述】:
这是一个例子:
from unittest import TestCase
class DogTest(TestCase):
def create_dog(self, weight):
dog = {'weight': weight}
return dog
class DogPawTest(TestCase):
def test_dog_paw(self):
dog_test = DogTest()
dog = dog_test.create_dog(weight=10)
self.assertEqual(dog['weight'], 10)
它抛出
ValueError: no such test method in <class 'unittest_case_import.DogTest'>: runTest
测试用例应该是独立的。此外,create_dog 可以而且应该在测试类之外。将定义更改为DogTest(object) 即可解开谜团。但我有一个案例,它不是一个选项。
如何在test_dog_paw 中使用另一个基于TestCase 的类的方法?
【问题讨论】:
-
您可以在 DogPawTest 中使用
DogPawTest(DogTest)。并使用self.create_dog(weight=10 -
@ManojJadhav 唉,就我而言,我必须在一个类中导入多个 TestCase 类。 Mixins 可能会有所帮助,但它需要大量重构。
标签: python unit-testing inheritance subclass python-unittest