【发布时间】:2015-12-04 11:18:32
【问题描述】:
我有一些端到端测试(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() 函数!)
【问题讨论】:
-
您是否已将
angular-mocks.js添加到您的页面 HTML 中? -
您能否提供实际的堆栈跟踪(如果有)?
标签: javascript unit-testing mocking protractor e2e-testing