我想生成一些动态数据并将这些数据输入到测试用例中。但我发现Django每次做测试都会初始化测试类。因此,每次 django 测试框架调用该函数时都会生成数据。
有没有办法使用单例或静态变量之类的东西来解决问题?解决方案应该是什么?
谢谢!
最佳答案
这是正常的单元测试行为,尽管您通常会在 setUp()
方法而不是 __init__
中设置测试数据(并在 tearDown 中销毁它) ()
也许)。
如果生成动态测试数据需要很长时间才能为每个测试用例方法执行,那么我想最好的方法是创建一个单例测试数据类。在这种情况下,您必须注意每个测试方法使测试数据类保持与它找到它时完全相同的状态,如果您希望测试用例方法在其中写入一些内容,那么这并不是微不足道的;这就是为什么unittest尝试为每个测试用例方法重新生成测试环境的原因。
一项改进可能是让单例测试数据类在每次请求它的实例时返回其自身的深拷贝。
关于python - Django 中的单元测试。注入(inject)测试用例的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2580648/