跳转到主要内容

改进TestCase类

项目描述

改进TestCase类

License Github pypi Travis CI

dectest.TestCaseunittest.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 查看哈希值)

上传时间 Python 3

由以下支持