2
我正在開發基於PhoneGap的Web應用程序。基本上我使用Jasmine作爲我的測試框架。但是寫出強大的單元測試讓我很痛苦。我遇到這些問題,如何在不同的設備,網絡下編寫可靠的移動web應用的單元測試?
- 網絡可以得到不穩定有時
- 設備差,一些得到高CPU頻率和大容量的RAM,一些得到低
- GPS信號可以得到強或弱的下不同環境
單元測試的結果可能會隨上述不確定條件而變化。如何消除這些副作用並使結果更可靠,更可靠?
我正在開發基於PhoneGap的Web應用程序。基本上我使用Jasmine作爲我的測試框架。但是寫出強大的單元測試讓我很痛苦。我遇到這些問題,如何在不同的設備,網絡下編寫可靠的移動web應用的單元測試?
單元測試的結果可能會隨上述不確定條件而變化。如何消除這些副作用並使結果更可靠,更可靠?
我不確定我可以回答你關於如何消除這些副作用的實際問題,因爲我不瞭解你的環境。不過,我認爲你可以以一種可能有所幫助的方式來思考你的測試。
你的單元測試不應該考慮像「如果運行測試信號變弱時會發生什麼情況」。相反,您應該有一個單元測試來模擬這種情況,然後在這些情況下測試應用程序的預期行爲。當你可以複製假設情況時,你可以有效地爲它們編寫單元測試。
接下來一個顯而易見的問題就是如何複製假設條件,這是我不確定PhoneGap或Jasmine能夠真正直接解決的問題。也許你可以在模擬器中控制某些東西,以便有效地再現弱的網絡/ GPS信號。 CPU/RAM功率的差異是你可能需要大量設備才能測試的。
你建議模擬測試中的所有東西(環境,數據等)。實際上,我在真實設備上運行所有這些測試,並且我想在真實環境下進行測試。我不知道我是否把事情搞混了。 – fifth
在真實環境中測試不再是真正的單元測試。我會說這是更多的集成測試,這是你可以在Jasmine中編寫腳本的東西。然而,集成測試並不能控制許多變量。看看這個鏈接來進一步描述差異。 http://www.typemock.com/blog/2011/05/29/the-difference-between-unit-testing-and-integration-testing-2/ 這我猜想還是沒有辦法來控制這些環境變量,但我認爲這樣做可能太難了。 –