[英]How to unit test a function in my case
我正在尝试为子控制器创建单元测试在我的子控制器中,我在父控制器中调用了一个函数
子控制器
$scope.clickMe = function(){
$scope.parentMethod();
})
上级控制器
$scope.parentMethod = function(item){
//do something with parent
})
单元测试
var childCtrl;
beforeEach(module('myApp'));
beforeEach(inject(function (_$controller_, _$rootScope_) {
scope = _$rootScope_.$new();
childCtrl = _$controller_('childCtrl', {
$scope: scope
});
}));
describe('test parent', function() {
it('should call parent', function() {
$scope.clickMe();
$httpBackend.flush();
});
});
});
我正进入(状态
TypeError: 'undefined' is not a function (evaluating '$scope.parentMethod()')
我不确定如何解决此问题。 有人可以帮我吗? 非常感谢!
您应该在范围内模拟该方法,以便测试子控制器
scope = _$rootScope_.$new();
scope.parentMethod = function noop(){};
childCtrl = _$controller_('childCtrl', {
$scope: scope
});
为了进行测试,noop应该换成间谍。 语法将取决于您使用Jasmine或Sinon的引擎。 通过这种测试方式,可以验证是否调用了parentMethod
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.