2015-12-31 107 views
-1

所以我很新的測試用例,我有一個小問題(具體到我的情況)。單元測試與Karma的角度應用程序

我目前正在開發一個Angular應用程序,並開始用Karma(Mocha/Chai)進行單元測試。 該應用程序的後端是一個節點RESTful API。 所以基本上,應用程序是一些控制器和服務進行一些基本的增刪改查操作。

在創建新用戶時,我使用angular的form指令處理html表單中的驗證。在服務器端,還有對收到的對象進行驗證。 所以一般我的控制器功能再沒有其他的東西,如:

create() { 
    UserService.create(vm.newUser).then(callBackToDisplaySuccessOrErrorMessage); 
} 

它可能聽起來很傻,但我在這個領域(測試用例)新和我是一個有點困惑,所以我的第一個問題是:

由於http調用被嘲笑,在應用程序中執行單元測試(如我的)有什麼意義?

我的第二個問題是:

如何單元測試基本的應用程式,例如在我的情況以適當的方式?

+0

測試控制器的要點是檢查您的控制器是否調用了預期的服務,並帶有預期的參數,並對正確的成功/錯誤作出反應。對服務進行單元測試的重點是檢查它是否發送了預期的HTTP請求以及正確的URL和正文,並將成功/錯誤結果正確地傳送給其調用者。但是進行單元測試並不意味着您不應該進行集成(a.K; a。端到端)測試,以驗證該應用作爲一個整體按預期工作。 –

回答

1

澄清你的疑惑: 1.嘲笑是用來測試溝通。 在爲您的控制器編寫規範時,他們更感興趣的是驗證是否使用預期的參數調用userService.create。同樣,你會嘲笑來自服務的迴應(如果有的話)。因此,您已驗證Controller與Service的通信功能。

現在當你編寫服務規範時,是的http調用被模擬,但你仍然在驗證http url,期望的方法被調用像GET,POST等參數傳遞。您只嘲笑預期的成功/失敗響應並驗證您的處理程序的相同。

相關問題