Django针对只读数据库的测试

3
我正在寻找如何在特定场景下编写测试的最佳实践建议。我有一个针对postgres数据库运行的Django API(我在我的服务器上控制),以及一个远程只读MySQL数据库。只读数据库由外部服务提供,他们提供了非常宽松的API来向其数据库写入数据(因此,我们覆盖了.save方法以写入API,而不是直接使用数据库),但这是所有生产数据,因此不适合测试。您认为如何组织该项目才能设置类似的MySQL数据库,或者仅以连续模拟每个写入的方式(这样编写API端点集成测试仍然可行)?如果需要,我可以提供更多细节。
1个回答

0

我建议您遵循运行测试的常见做法:

  1. 从现有数据库中转储一小组数据到 JSON 格式的 fixtures 文件中。
  2. 为每个测试运行创建一个临时的 SQLite/MySQL 数据库,并使用来自 fixtures 文件的数据填充它

在这种情况下,您可以随意处理测试数据库,因为它会被丢弃。此外,您的测试不会依赖于生产环境中的数据。


创建测试数据可能不允许存储极其安全的信息的公司。对于从数百个表中提取的高度安全的数据创建并混淆测试数据是一项繁琐的工作,完全浪费时间,而我们可以直接使用实际的数据库连接。 - Rjak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接