[英]Jasmine unit test case for $routeChangeStart in AngularJS
[英]Unit Test case in Jasmine
我正在嘗試為循環中的條件編寫測試用例,但是我沒有將其作為過濾器的一部分。 有什么辦法可以測試循環中的條件條件。 我的測試用例根本不執行這一行代碼。
下面是我的控制器代碼
$scope.init = function()
{
for (var i = 0; i < $scope.tempdata.length; i++) { //mapping of the status to text
if ($scope.tempdata[i].Status == 'U') {
$scope.statusText = 'text1';
}
if ($scope.tempdata[i].Status == 'A' || $scope.tempdata[i].Status == 'W') {
$scope.statusText = 'text2';
}
if ($scope.tempdata[i].Status == 'F') {
$scope.statusText = 'text3';
}
if ($scope.tempdata[i].Status == 'P') {
$scope.statusText = 'text4';
}
if ($scope.tempdata[i].Status == 'E') {
$scope.statusText = 'text5';
}
if ($scope.tempdata[i].Status == 'S') {
$scope.statusText = 'text6';
}
}
}
以下是我的測試用例
it('should set the status', function() {
scope.responseSet = true;
var mockTempData =[{'Status': 'F'}];
scope.tempdata = mockTempData
scope.init();
expect(scope.statusText).toBe(text3);
});
當我運行業力時,我的測試用例失敗,預期為”為text3。
告訴您是否顯示如何將示波器“注入”控制器測試會更容易。 但是,我發現調試單元測試以仔細地逐步完成它們並確保一切與我期望的每一步都非常有用。
您還應該最后一行是
expect(scope.statusText).toBe('text3');
請注意,應該將測試代碼中的text3更改為'text3',因為這是實際控制器中的字符串,而不是變量名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.