0
我正在編寫指令並希望添加單元測試。 我想要寫測試:如何在角度指令中測試控制器
- 它(「當創建指令消息變量被定義」)
- 它(「當創建指令它不包含任何消息」)
- 它('當消息被稱爲會增加新的消息堆棧「)
我的指令代碼如下
app.directive("message", function() {
return {
transclude: false,
require: '^ngModel',
templateUrl: 'notificationBar.html',
scope: {
message: '@'
},
controller: function ($scope) {
$scope.messages = [];
$scope.addMessage=function(message){
$scope.messages.push(message);
}
}
}
});
而且我的測試,但我不知道爲什麼這不起作用
describe("messageSpec", function(){
var element;
var $scope;
var ctrl;
beforeEach(module(app));
beforeEach(inject(function($compile, $controller, $rootScope){
var elm = angular.element(' <div data-message data-message="{{ message }}" >');
$scope = $rootScope;
element = $compile(elm)($scope);
$scope.$digest();
ctrl = element.controller("message");
}));
describe("test", function(){
it('When directive is created messages variable is defined', function(){
spyOn(ctrl,messages);
expect(ctrl.messages).toBeDefined();
});
it('When directive is created it contains no messages',function(){
spyOn(ctrl,messages);
expect(ctrl.messages.length).toBe(0);
});
it('When message is called it will add new message to stack', function(){
// todo
});
});
});
我得到錯誤:「模塊沒有定義」任何想法,爲什麼? – cpoDesign
您是否看到我的闖入者的錯誤?這對我來說可以。如果是,您使用的是哪種瀏覽器? – runTarm
我正在使用chrome並出現錯誤:ReferenceError:模塊沒有在套件中定義爲 。(http://run.plnkr.co/WdBVohRCnTCT8los/appSpec.js:6:14) –
cpoDesign