3

是否有人知道如何使用Django REST後端執行(React)前端的集成測試。我能夠使用Nightwatch.js和虛假服務器API編寫前端功能測試。我也能夠單獨測試Django REST API - Django提供了一個LiveServerTestCase,它可以爲測試數據庫啓動一個測試服務器,並在最後銷燬它。我想知道是否有可能以某種方式使用/設置Django的可以由前端調用的測試服務器(即Nightwatch測試)。 我很樂意接受有關如何解決此問題的其他建議。React前端與Django REST後端的集成測試

+0

爲什麼不能使用相同的Nightwatch.js前端測試,並簡單地與實例化並配置爲運行測試的django後端對話? –

+0

你說得對,這似乎是一個明顯的解決方案。 – foobar

回答

2

集成測試重度客戶端JavaScript應用程序總是有點棘手。我爲此場景選擇的工具是使用Capybara - 一個很好的Ruby DSL與網頁交互 - 以及javascript enabled driver。我已經成功地使用了webkitdriver和poltergeist。它們都是無頭的,所以你可以在後臺運行測試而不會打擾瀏覽器。 (硒的情況....)在某些情況下,我現在還不記得有兩個問題。

由於您使用的是Django,您可能需要執行testing in Python。我建議尋找支持上述兩個驅動程序之一。此外,node.js社區可能對此有用。

+0

謝謝@froderik,我不知道水豚,肯定會看看:)我的問題是做前端集成測試,調用後端REST API,它運行在不同的服務器上。所以我會來回決定是否應該在前端(即使用一些JS框架)或者在後端使用Django工具進行集成測試。我很好奇,看看其他人如何做到這一點。 – foobar

+1

我想說大多數人不會在集成測試中包含他們的JS前端。他們認爲需要太多時間來維護。在我看來,這是你必須爲持續穩定付出的時間。我會給JS測試一下,如果因爲某種原因變得太不穩定或者很難,那麼我會回退到後端方法。要考慮的另一個參數是不同部分的單元測試覆蓋度。 – froderik

+0

我會試試看,謝謝你的見解! – foobar