Я пытаюсь написать тестовый пример, если условия внутри цикла, однако я не имею его как часть фильтра. Есть ли способ проверить условия if в цикле. Мой тестовый пример вообще не выполняет эту строку кода.Единица Test case в 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.
Переключатель ($ scope.tempdata [i] .Status) 'будет выглядеть более аккуратно. Кроме того, не должен ли ваш тест «ожидать» (scope.statusText) .toEqual ('text3') '(как в строке« text3 »)? – Phil
Кажется, здесь нормально работать ~ http://plnkr.co/edit/4t8W9APotPwcvzvvuPxQ?p=preview – Phil