我們已經爲使用KIF編寫的我們的應用程序開發了一套UI測試,我希望將其轉換爲使用新的Xcode UI測試框架。如何在測試運行時在Xcode UI測試中模擬網絡請求?
該應用程序是一個Rest AI的客戶端,我們當前正在使用NSURLProtocol爲響應GET,POST,PUT等服務預定義的JSON文件而嘲笑其響應。所有測試均使用數據定義在這些文件中,所以我想繼續使用它們。服務器上的相同端點在測試中的不同位置返回不同的數據,所以我不能在前面模擬它們,我需要能夠在測試運行時調用方法來模擬服務器的下一個響應。
不幸的是,在Xcode UI測試中使用NSURLProtocol不會影響測試的應用程序,我只能看到通過啓動參數或環境將數據發送到應用程序的方式,例如this answer。我需要在測試過程中的不同階段以不同的方式嘲笑他們。我如何在測試過程中以改變的方式在UI測試中模擬網絡請求?或者,我如何與正在測試的應用程序進行通信,以便我可以嘲笑請求本身?
OHHTTPStubs和NSURLSession對我沒有用,因爲我的測試運行在我希望測試的應用程序的另一個應用程序中。 launchEnvironment屬性對我無用,因爲我無法在中間測試中對其進行更改。 – Simon