我有一些端到端测试(JavaScript + Protractor),我需要模拟API后端。
我正在使用http-backend-proxy:
这就是我的所作所为:
var HttpBackend = require('http-backend-proxy');
var myData = require('myFakeApiResponse.json');
this.proxy = new HttpBackend(browser);
this.proxy.whenGET(/.+\/api\/groups\/.+/).respond(200, myData);
JavaScript抱怨whenGET不是函数。
如果我喜欢这样:
this.proxy.whenGET(/.+\/api\/groups\/.+/);
它不再抱怨(但显然我需要设置响应,所以我需要.respond()
部分)
我无法理解为什么它不起作用。似乎设置了代理对象,当我在console.log中得到它时:
{ when: [Function],
whenGET: [Function],
whenPUT: [Function],
whenHEAD: [Function],
whenPOST: [Function],
whenDELETE: [Function],
whenPATCH: [Function],
whenJSONP: [Function],
context: {},
flush: [Function],
syncContext: [Function],
onLoad: [Getter] }
它似乎是一个合适的JavaScript对象(甚至列出了whenGET()函数!)
答案 0 :(得分:1)
我也在使用http-backend-proxy。
我需要这个用于传递(主要是html页面作为Angular应用程序):
proxy.onLoad.whenGET(/.*/).passThrough();
以及onLoad:
proxy.onLoad.whenGET('the url').respond(...);
当我使用browser.get(...)导航时,会调用onLoad.whenGET。