2

我正在尝试使用 express 构建一个非常简单的 API,并希望使用 Mocha 进行测试。我还想使用 jquery-mockjax 来模拟​​第三方 API 调用,但不知道如何去做。我曾经npm install在全球范围内安装 Mocha,并在应用程序中安装 jquery 和 jquery-mockjax。

如何要求 mockjax 和 xmldom 库(模拟第三方 API 返回的 xml 响应)?代码方面,这是我想象的样子但不起作用:

var request = require('supertest');
var should = require('should');
var $ = require('jquery');
var constants = require('../lib/constants');

require('jquery-mockjax');
// require('/opt/orbit/orbit-api/node_modules/jquery-mockjax/lib/jquery.xmldom.js');

var server = request.agent("https://localhost:8080/api");

describe("As a user, I", function() {

  beforeEach(function() {
    this.timeout(0); //disables mocha 2 second timeout limit
  });

  it("should be able to sign in", function(done) {
    $.mockjax({
      url: apiUrl + 'auth/signin',
      type: 'post',
      responseXML: '<tsResponse><credentials token="1234" ><site id="1" contentUrl="url" /><user id="1" /></credentials></tsResponse>'
    });

    server
      .post("/auth/signin")
      .send({
        username: username,
        password: password
      })
      .expect("Content-type", /json/)
      .end(function(err, res) {
        res.body.http_code.should.equal(200);
    done();
  });
});
4

0 回答 0