我无法找出使用pythons unittest框架的正确方法
我目前有3种不同的数据结构类实现,并且单元测试可以测试类中的各种内容,如下所示:
import fooHorse
import fooSnake
import fooMoose
import unittest
foo = fooHorse.foo()
#foo = fooSnake.foo()
#foo = fooMoose.foo()
class testFoo(unittest.TestCase):
def testSomething(self):
foo.do_something()
...
def testSomethingelse(self):
...
# etc
if __name__ == "__main__":
unittest.main()
如何重构代码,以便为fooSnake.foo
,fooMoose.foo
和fooHorse.foo
运行所有测试?
答案 0 :(得分:2)
只需将所有测试纳入一个函数并从三个测试中调用它:
class testFoo(unittest.TestCase):
def _doTest(self, foo):
foo.do_something()
# ...
def testFoorHorse(self):
foo = fooHorse.foo()
self._doTest(foo)
# and so on.
我不会尝试做任何更聪明的事情,以便测试逻辑保持简单,显然应该没有错误。
答案 1 :(得分:0)
我认为最好将测试代码保留在被测试的类中(因此,在fooHorse
类内部等)。我无法从代码段中分辨出来,所以也许你已经在做了。然后,要将多个测试组合在一起运行,或者选择其中一些,您可以创建一个单独的测试类来创建测试套件。在那里,可以分配单独的单元测试。有关详细信息,请参阅python docs。