2015-01-28 28 views
0

Я пытаюсь написать модульный тест для своих кодов, и мне нужно руководствоваться.Как решить проблему с моим модулем в моем случае

У меня есть что-то в моем файле как

//inside my 'testCtrl' I have 
$scope.calculateTime = function() { 
    var date = new Date(); 
    $scope.currentYear = date.getFullYear(); 
} 

$scope.calculateLastYear = function() { 
    $scope.currentYear = $scope.currentYear - 1; 
} 

мой тестовый файл.

describe('Controller: testCtrl', function(){ 
    beforeEach(module('myApp')); 
    beforeEach(inject(function(_$controller_, _$rootscope_) { 
     scope._$rootScope.$new(); 

     testCtrl = _$controller_('testCtrl', { 
      $scope:scope 
     }) 
    }) 

    //for some reason, every tests I write below are passed even 
    //though it should fail 

     it('should get the last year'), function() { 
      expect(scope.currentYear).toBe('text here….') //<-- it should fail but 
                  //it passes 
     }; 
}) 

Я не знаю, как написать тест, чтобы проверить функцию calculateLastYear, и я не знаю, почему мой expect(scope.currentYear).toBe('text here….') прошло. Может ли кто-нибудь мне помочь? Большое спасибо!

+1

beofreEach должен быть beforeEach – Donal

+0

просто опечатка. спасибо – BonJon

+0

кронштейн в неправильном месте. он («должен получить последний год»), – Donal

ответ

2

Ваш синтаксис спецификации неверен. Должно быть это (извините за каламбур):

it('should get the last year', function() { 
      expect(scope.currentYear).toBe('text here….'); 
}); 

Рассчитайте в прошлом году спецификации:

it('should get the last year', function() { 
    $scope.currentYear = 2015; 
    $scope.calculateLastYear(); 
    expect($scope.currentYear).toEqual(2014); 
    }); 
+1

Спасибо, я пропустил это. Возможно ли, что вы можете помочь мне написать тест для функции calculateLastYear? +1 – BonJon

+0

он ('следует рассчитать в прошлом году', функция() {$ scope.currentYear = 2015; $ scope.calculateLastYear(); ожидать ($ scope.currentYear) .toEqual (2014); }); – Donal