2017-07-14 41 views
0

我有一個Django視圖,用戶填寫並提交表單。數據是從這個表單中獲取的,並且在Elasticsearch索引中創建一個文檔。Django View Unit測試何時訪問Elasticsearch索引

我的問題是,如何在不影響我的Elasticsearch索引的情況下測試此視圖?這是一個發展指數,但我不想用單元測試數據混淆它。

一個選項是在單元測試中創建記錄,然後在拆卸過程中刪除它 - 但是,如果可能的話,我真的很想避免觸摸索引。

還有其他的選擇嗎?

+0

查看針對Python 3.x的[unittest.mock](https://docs.python.org/3.4/library/unittest.mock.html)或[mock](https://pypi.python .org/pypi/mock)爲2.6+ – rafalmp

回答

0

有一對夫婦的,可以處理這種不同的方法:使用動態unittest.patch

  • 建立某種形式的「縫」到您認爲允許測試

    • 存根Elasticsearch depedency的加載導入視圖並用測試實現替換elasticsearch類
    • 在設置中將彈性搜索類定義爲模塊路徑,並將其切換爲測試運行(django實際上會對其進行大量depdendencies操作)