鼻子测试的设置方法。 (测试类)

时间:2014-06-02 21:37:54

标签: python testing installation nosetests

我正在模拟我正在做的一些测试中的数据库。如何为整个类创建一个设置方法,以便每次在类中运行单个测试时它都会运行?

我试图做的例子。

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

我假设一个拆解方法也是可能的,但是我找不到会做类似这样的事情的文档。

2 个答案:

答案 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

Documentation

答案 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,   拆解所有或者撕掉所有。级别设置和拆卸夹具   必须是阶级方法。