改进TestCase类
项目描述
改进TestCase类
dectest.TestCase
是 unittest.TestCase
的一个可选替换,具有一些附加功能。
使用装饰器进行测试、设置和清理
测试可以可选地使用 @test
装饰器标记,而不是在方法名前加上 test
。以下测试用例类包含两个测试
from dectest import TestCase, test
class MyTest(TestCase):
def test_foo(self):
pass
@test
def bar(self):
pass
可以使用 @before
和 @after
装饰器分别标记设置和清理方法。一个类可以有多个设置和清理方法
from dectest import TestCase, before, after
class MyTest(TestCase):
@before
def setup_stuff(self):
pass
@before
def setup_more_stuff(self):
pass
@after
def teardown_all_stuff(self):
pass
虽然类内执行的顺序是未定义的,不应该依赖于它,但可以保证基类中的设置方法在子类方法之前执行,子类中的清理方法在基类中的清理方法之前执行
from dectest import TestCase, before, after
class MySuperTest(TestCase):
@before
def super_setup(self):
print("setup first")
@after
def super_teardown(self):
print("teardown second")
class MySubTest(MySuperTest):
@before
def sub_setup(self):
print("setup second")
@after
def sub_teardown(self):
print("teardown first")
支持补丁
dectest.TestCase
有一个 patch()
方法,可以使用 unittest.mock.patch()
安装模拟。此补丁将在测试清理期间删除
from dectest import TestCase, test
class MyPatchTest(TestCase):
@test
def foo(self):
exit = self.patch("sys.exit") # will be stopped during teardown
# call implementation
exit.assert_called_with(1)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
本发行版没有源分发文件。请参阅关于生成分发存档的教程。
构建的分发
dectest-1.1.1-py3-none-any.whl (5.3 kB 查看哈希值)