我正在嘗試使用Selenium爲我的應用程序的前端行爲編寫測試。但是,我試圖測試的頁面從Solr獲取它們的數據,我不想旋轉Solr實例來運行測試。使用Django的LiveServerTestCase Monkeypatching視圖
我正在使用py.test和py.test-django我的測試,我試圖monkeypatch視圖,以便對Selenium瀏覽器發送的數據進行斷言。
例如,這是我所期望的失敗測試:
def test_search(self, live_server, browser, monkeypatch):
def mockview(request):
from django.http import HttpResponse
assert True == False
return HttpResponse('Test')
monkeypatch.setattr(project.app.views, 'search', mockview)
browser.get(live_server.url + reverse('app:search'))
我希望當瀏覽器嘗試加載的「應用程序:搜索」這個失敗頁面。相反,它會加載正常版本的頁面並且測試成功。
有沒有辦法得到這種行爲?還是有更好的方法來處理這些測試?
我會被替換的意見是JSON意見通過客戶端JS是牽強,但是打補丁Solr電話也起作用。 – rouge8 2013-03-05 20:00:02
'mock'現在是Python 3的一部分,因此您可以用https://docs.python.org/3/library/unittest.mock.html#where-to-patch替換第一個鏈接 – Flimm 2016-12-28 19:30:29