一些用户可能会发现他们有想要使用unittest运行的测试代码,但是旧的测试函数都没有使用TestCase类重写。
为了解决这个问题,unittest提供了一个FunctionTestCase类。这个TestCase的子类可用于包装现有的测试函数,并且也提供了创建和销毁的功能。
现有下面的测试函数:
def testSomething():
something = makeSomething()
assert something.name is not None
# ...
使用可选的创建和销毁方法可以创建一个等效的测试用例实例,如下所示:
testcase = unittest.FunctionTestCase(testSomething,
setUp=makeSomethingDB,
tearDown=deleteSomethingDB)
小贴士:
虽然使用FunctionTestCase类可以快速地将现有测试库转换为基于unittest系统的测试,但是这个方法是不推荐的。花时间去建立对应的TestCase子类将会使未来的测试重构更加容易。
如果现有的测试是使用doctest
模块编写的,那么很容易将它使用在unittest系统中。doctest提供了一个DocTestSuite类,这个类可以从现有的基于doctest的测试中自动构建unittest.TestCase
用例。
网友评论