我想生成一些动态数据并将这些数据提供给测试用例。但是我发现Django每次都会在测试类中初始化测试。因此每次django测试框架调用该函数时都会生成数据。
无论如何使用单例或静态变量来解决问题?应该是什么解决方案?
谢谢!
答案 0 :(得分:3)
这是正常的单位测试行为,但您通常会使用setUp()
方法而不是__init__
设置测试数据(并在tearDown()
中将其销毁)。
如果为每个测试用例方法生成动态测试数据需要很长时间,那么我想最好的方法是创建一个单例测试数据类。在这种情况下,您必须注意每个测试方法都将测试数据类保持在与它找到的完全相同的状态,如果您希望测试用例方法在其中写入内容,这并非易事;这就是为什么unittest试图为每个测试用例方法重新生成测试环境的原因。
一个改进可能是让单例测试数据类在每次请求它的实例时都返回自身的深层副本。