Django 视图单元测试视图何时访问 Elasticsearch 索引



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

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

一种选择是在单元测试中创建记录,然后在拆卸期间将其删除 - 但是,如果可能的话,我真的很想完全避免触及索引。

还有其他选择吗?

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

  • 使用unittest.patch动态地存根加载 Elasticsearch depedency
  • 在视图中创建某种"接缝",允许测试导入视图并将 elasticsearch 类替换为测试实现
  • 在设置中将弹性搜索类定义为模块路径,并将其切换出来用于测试运行(django 实际上通过它的很多缺点来做到这一点)

最新更新