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