python - Django 中的单元测试。注入(inject)测试用例的静态变量

标签 python django unit-testing

我想生成一些动态数据并将这些数据输入到测试用例中。但我发现Django每次做测试都会初始化测试类。因此,每次 django 测试框架调用该函数时都会生成数据。

有没有办法使用单例或静态变量之类的东西来解决问题?解决方案应该是什么?

谢谢!

最佳答案

这是正常的单元测试行为,尽管您通常会在 setUp() 方法而不是 __init__ 中设置测试数据(并在 tearDown 中销毁它) () 也许)。

如果生成动态测试数据需要很长时间才能为每个测试用例方法执行,那么我想最好的方法是创建一个单例测试数据类。在这种情况下,您必须注意每个测试方法使测试数据类保持与它找到它时完全相同的状态,如果您希望测试用例方法在其中写入一些内容,那么这并不是微不足道的;这就是为什么unittest尝试为每个测试用例方法重新生成测试环境的原因。

一项改进可能是让单例测试数据类在每次请求它的实例时返回其自身的深拷贝。

关于python - Django 中的单元测试。注入(inject)测试用例的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2580648/

相关文章:

python - scipy稀疏矩阵: Index out of range

python - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录。有关详细信息,请参阅代理日志文件

python - Django - TypeError at/statements/int() 参数必须是字符串、类似字节的对象或数字,而不是 'AnonymousUser'

java - Jmockit 模拟问题

python - 形状相交 : parallel planes

python - 如何从同步代码 Python 调用异步函数

python - 在 Django 中解析 json 中的日期

python - Django:更改可选 ImageField 的 url

c# - 如果断言失败,自定义断言类应该做什么?

unit-testing - 模拟 Kafka API 以进行单元测试