我正在开发一个依赖REST API的Angular应用程序(实际上是一个Ionic应用程序)。要与API通信,我会将$resource
注入我的控制器。
我现在想专注于应用程序,后来担心后端 - 所以我想创建各种$resource
的虚拟版本。例如,我的虚拟Products
$资源将包含一些示例产品记录(硬编码为JSON),并将支持/模仿真实 $resource
将执行的相同CRUD操作最终支持。
换句话说,它将是similar to this - 但会模仿与$resource
相同的API(承诺,错误处理等)。
显然,我可以推出自己的解决方案 - 但肯定这已经解决了问题。什么是标准方法?
(我已经做了很多谷歌搜索,但我找到的所有内容都谈到了单元测试和测试框架 - 我对此几乎一无所知。无论如何,这似乎与我正在尝试的问题略有不同。我已经看到很多关于$httpBackend
- 但是(1)嘲笑低级$http
服务,而不是$resource
,这是我需要的,(2) )它似乎意味着在单元测试的环境中使用,这不是我想要做的。)
答案 0 :(得分:0)
我终于找到了an example of using $httpBackend
without a unit test。
基本上,您可以将$httpBackend
注入模块的run()
方法,如下所示:
app.run(function($httpBackend) {
var phones = [{name: 'phone1'}, {name: 'phone2'}];
$httpBackend.whenPOST('/phones').respond(function(method, url, data, headers){
console.log('Received these data:', method, url, data, headers);
phones.push(angular.fromJson(data));
return [200, {}, {}];
});
$httpBackend.whenGET('/phones').respond(function(method,url,data) {
console.log("Getting phones");
return [200, phones, {}];
});
});