在Django中,如何在测试函数后保留数据库状态?

时间:2015-08-05 08:35:54

标签: django django-testing

假设我的testcase类中有3个测试函数。 test1在所有断言语句之前执行A,test2执行AB并且test3执行ABC。

A,B,C都意味着一些数据库创建。基于Django TestCase的机制,对于每个测试函数,它将创建一个新的数据库。但是,在我的情况下,test3取决于test2的数据状态,test2取决于test1的状态。

我有几个问题:

  1. 有没有一种优雅的方式来处理这种测试问题? (我知道灯具很有用。但我想保留以前测试功能中动态创建的数据)

  2. 我坚信单元测试应该是独立的。你如何处理Django中数据库层的相互关系测试?

2 个答案:

答案 0 :(得分:0)

在这里,您尝试使用以前的测试用例来编写下一个测试用例。在这种情况下,您可以在setUp()函数中定义基本功能。然后在测试用例中使用setUp。在每个测试用例的开头调用setUp函数。

答案 1 :(得分:0)

大多数情况下,当存在依赖单元测试功能时,您需要先检查您正在测试的代码。代码需要分解为可单元测试的单元。

但是可能存在一些例外情况,在这些情况下,将测试功能组合成一个将最有意义。因为在测试函数时,您正在测试整个函数的功能而不是它的一部分。