Javascript 未调用$resource回调
我有一个方法可以调用Angular的$resource。我试图测试这个方法的返回值。这种方法应该足够简单,可以测试 方法代码Javascript 未调用$resource回调,javascript,angularjs,unit-testing,angular-resource,Javascript,Angularjs,Unit Testing,Angular Resource,我有一个方法可以调用Angular的$resource。我试图测试这个方法的返回值。这种方法应该足够简单,可以测试 方法代码 getCountries(): returnTypeObject { var countries = this.$resource( this.apiEndpoint.baseUrl, { 'get': { method: 'GET',
getCountries(): returnTypeObject {
var countries = this.$resource(
this.apiEndpoint.baseUrl,
{
'get': {
method: 'GET', isArray: false
}
});
return countries;
}
单元测试
describe('module', (): void => {
beforeEach((): void => {
angular.mock.module('ngResource');
});
describe('getCountries...', (): void => {
it("should...", inject(
['Builder', (Builder: IBuilder): void => {
Builder.getCountries().get(
(value: any) => {
console.log(value);
}, (error: any) => {
console.log(error);
});
}]));
});
});
在上面的代码中,当我运行我的测试时,没有一个回调被调用。“值”和“错误”都不会被打印出来。我一直在寻找一个解决方案,但现在还没有找到任何东西
请记住,我不想模拟$resource,而是想测试getCountries().get()返回的内容,然后我想使用回调测试返回值。$resource是异步的。代码中的var countries只是不同的,所以您的变量是:Builder.getCountries().get().then(函数(yourRealResponse){console.log(yourRealResponse);}).catch(函数(yourError){});谢谢@koiiey有什么原因导致getCountries返回的对象未定义?我不知道,抱歉。理论上,getCountries应该返回资源对象。我认为我的问题是,我应该异步测试它。。。我又发了一个帖子