我正在模拟我正在做的一些测试中的数据库。如何为整个类创建一个设置方法,以便每次在类中运行单个测试时它都会运行?
我试图做的例子。
from mocks import MockDB
class DBTests(unittest.TestCase):
def setup(self):
self.mock_db = MockDB()
def test_one(self):
#deal with self.mock_db
def test_two(self):
#deal with self.mock_db, as if nothing from test_one has happened
我假设一个拆解方法也是可能的,但是我找不到会做类似这样的事情的文档。
答案 0 :(得分:4)
如果你正在使用Python单元测试框架,那就是你想要的东西:
class Test(unittest.TestCase):
def setUp(self):
self.mock_db = MockDB()
def tearDown(self):
pass # clean up
def test_1(self):
pass # test stuff
答案 1 :(得分:3)
使用Nose,TestCase的子类化与标准unittest
的工作方式相同 - setUp
/ tearDown
是相同的。来自the nose docs
测试类
测试类是在匹配的测试模块中定义的类 testMatch或是unittest.TestCase的子类。所有测试类都是 以相同的方式运行:类中与testMatch匹配的方法 发现,并构建一个测试用例来运行每个方法 测试类的新实例。像unittest.TestCase子类一样, 其他测试类可以定义setUp和tearDown方法 在每种测试方法之前和之后运行。测试类没有 从unittest.TestCase下降也可能包括生成器方法和 班级固定装置。可以命名类级设置装置 setup_class,setupClass,setUpClass,setupAll或setUpAll;拆除 灯具可以命名为teardown_class,teardownClass,tearDownClass, 拆解所有或者撕掉所有。级别设置和拆卸夹具 必须是阶级方法。