我有一个Django视图,用户在其中填写并提交表单。数据取自此表单,并在 Elasticsearch 索引中创建文档。
我的问题是,如何在不影响我的 Elasticsearch 索引的情况下测试此视图?这是一个开发指数,但我不想把它与单元测试数据混为一谈。
一种选择是在单元测试中创建记录,然后在拆卸期间将其删除 - 但是,如果可能的话,我真的很想完全避免触及索引。
还有其他选择吗?
有几种不同的方法可以解决这个问题:
- 使用
unittest.patch
动态地存根加载 Elasticsearch depedency - 在视图中创建某种"接缝",允许测试导入视图并将 elasticsearch 类替换为测试实现
- 在设置中将弹性搜索类定义为模块路径,并将其切换出来用于测试运行(django 实际上通过它的很多缺点来做到这一点)