在JavaScript量角器端到端测试中模拟HTTP后端

Mocking the HTTP backend in JavaScript protractor end to end testing

本文关键字:模拟 HTTP 后端 JavaScript 量角器 测试      更新时间:2023-09-26

我有一些端到端测试(JavaScript+Protractor),我需要模拟API后端。

我正在使用http后端代理:

我就是这么做的:

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()部分)

我不明白为什么它不起作用。代理对象似乎已设置,当我控制台日志时,我得到:

{ 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()函数!)

我也在使用http后端代理。

我需要这个来进行传递(主要是html页面,因为它是一个Angular应用程序):

proxy.onLoad.whenGET(/.*/).passThrough();

以及onLoad:

proxy.onLoad.whenGET('the url').respond(...);

当我使用browser.get(…)进行导航时,会调用onLoad.whenGET。