簡體   English   中英

在我的情況下如何對功能進行單元測試

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM