我尝试过使用Spies,尝试通过调用函数来声明一个变量并且没有任何效果。我是单元测试的新手,我必须误解一些东西
我的单元测试功能
describe('search treatments method',function(){
it('search treament should have been called',function(){
testSearch = new scope.searchTreatments();
spyOn(testSearch,'searchTreatments');
expect(testSearch.searchTreatments).toHaveBeenCalled();
});
});
我想测试的方法
$scope.searchTreatments = function(value){
return Treatment.find(value).then(function(values){
return values;
});
};
治疗是另一个文件中的工厂
app.factory('Treatment',['$http','$q',function($http,$q){
function _getTreatment(val) {
return $http.get('/api/providers_medical_services_services', {
params: {
type: 'treatment',
treatment: val
}
}).then(function(response){
return response.data;
});
}
return {
find: _getTreatment
};
}]);
基本上,我只是想在testsearch上创建一个间谍,看它是否被调用。
答案 0 :(得分:1)
如果我没错,你必须嘲笑工厂。
您必须使用angular-mocks.js来模拟服务或工厂才能在Karma中进行测试
如果您添加了控制器和服务文件,请检查您的karma.config。
-Thanks