1
我正在使用Karma和Jasmine爲AngularJS應用程序編寫單元測試,並且在我的一個測試中驗證數據時遇到了一些麻煩。在這個測試中,我有一個使用服務的組件控制器。在我的測試中,我調用了一個在該服務中設置值的方法。當我測試它是否設置正確時,它看起來好像沒有。我是否正確設置了測試以便能夠檢查此問題?Angular中的其他服務測試值
與服務組件
angular.module('myApp').component('actions',{
templateUrl: '/app/components/actions/actions-template.html',
controller: ['action.service', '$location', function (actionService, $location) {
var self = this;
self.setActiveItem = function (item) {
actionService.activeItem = item;
};
}]});
我的測試
describe('action.component.tests', function() {
var actionListComponent;
var actionServiceTest;
beforeEach(inject(function ($injector, $componentController) {
actionListComponent = $componentController('actions');
actionServiceTest = $injector.get('action.service');
}));
describe('action.component method tests', function() {
it('Should set an active item in the action service', function() {
var item = {};
actionListComponent.setActiveItem(item);
expect(actionServiceTest.activeItem).toBe(item);
});
});});
該錯誤消息我得到的回覆是,測試失敗,因爲我用於測試的item
不匹配目前在actionServiceTest.activeItem
中設置了什麼。我可以使用控制檯日誌記錄來確認,無論我在測試中使用什麼項目,它都不會將其設置在actionServiceTest.activeItem
之內。