[英]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.