我想到寫在摩卡測試。但是,我不太清楚如何從這些測試開始。
單元測試通常只包括功能測試,不包括集成測試和迴歸測試,這意味着你應該測試每個功能儘可能即可。
一個基本的例子就是這樣。
function alwaysReturnTrue(){
return True;
}
assertTrue(alwaysReturnTrue());
關於單元測試框架,如mocha,Jasmine,他們只發起了一個框架來運行測試。其中大部分將提供基本的assert
功能,如assertTrue
,assertFalse
,assertEqual
等。
顯然,那些斷言方法不足以測試所有的角落案例。
- 回調函數
- 函數調用序列
- 函數調用的參數
- 觸發例外
- 假XHR或服務器
爲了處理這些東西,它可以通過一個流行的完成解決方案,這被稱爲sinon。
另外,應該測試樣的試樣消費者的功能性的測試被稱爲集成測試或應用的那些單元測試組合?
不,集成測試通常重複您的軟件的整個序列,而不是一個單一的功能。那些東西也可以由sinon完成。(假XHR或服務器)
For example: without UI
Login() -> Send exit request to serverlet -> Logout()
Login() -> Send exit request with save="true" data to serverlet -> Logout()
正如我上面提到的,我們還有哪些尚未討論的另一個考驗。它被稱爲迴歸測試這是最複雜的測試。有兩個着名的UI測試庫可以做到這一點,selenium和phantomjs。
For example: with UI
Login() -> Click Button Exit() -> Logout()
Login() -> Click Checkbox A() -> Click Button Exit() -> Logout()
總體而言,一個完整的軟件測試過程有三個過程。但是,在現實世界中,時間是有限的。如果您的項目規模很小,則可能會跳過迴歸或集成測試。
step: unit test -> integration test -> regression test
time: (short) (longer) (very long)
我增加了一個這一點,因爲不確定爲什麼人們減去初學者的積分。 –