繁体   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