当视图访问弹性搜索索引时,Django视图单元进行测试

时间:2017-07-14 13:25:10

标签: python django unit-testing

我有一个Django视图,用户填写并提交表单。数据来自此表单,并在Elasticsearch索引中创建文档。

我的问题是,如何在不影响我的Elasticsearch索引的情况下测试此视图?这是一个开发指数,但我宁愿不与单元测试数据混淆。

一个选项是在单元测试中创建记录,然后在拆除期间删除它 - 但是,如果可能的话,我真的想避免触及索引。

还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

有几种不同的方法可以解决这个问题:

  • 使用unittest.patch
  • 动态加载Elasticsearch依赖项
  • 在视图中创建某种“接缝”,允许测试导入视图并用测试实现替换elasticsearch类
  • 将设置中的弹性搜索类定义为模块路径,并将其切换为测试运行(django实际上是通过大量的depdendencies实现的)