我正在尝试在我的案例中测试一个rootcope http请求
我有类似
的东西mainCont文件
$rootScope.testLoad = $http.get('/api/testapi/product');
TestCont文件
$rootScope.testLoad.success(function(product){
console.log(product)
})
测试文件
describe('test', function () {
var $httpBackend, $rootScope, scope, mainCont, testCont;
beforeEach(module('myApp'));
beforeEach(inject(function (_$controller_, _$httpBackend_, _$rootScope_) {
scope = _$rootScope_.$new();
$rootScope = _$rootScope_;
$httpBackend = _$httpBackend_;
testCont = _$controller_('testCont', {
$scope: scope
});
mainContr = _$controller_('mainCont', {
$scope: scope
});
}));
describe('test http request', function() {
it('should check if the api is called', function() {
$httpBackend.expectGET('/api/testapi/product').respond(200);
//I am not sure how to test the call in testCont file.
})
})
});
我不确定如何测试testCont中的调用,因为当我运行测试时, 我收到了一个错误
TypeError: 'undefined' is not an object (evaluating '$rootScope.testLoad.success')
任何人都可以帮我解决这个问题吗?非常感谢!
答案 0 :(得分:1)
您已将testLoad
定义为函数,因此需要通过添加括号来调用它。将您的代码更改为
$rootScope.testLoad().success(function(product){
console.log(product)
})