2

我正在尝试为可能返回两个 http 状态代码之一的 REST API 编写测试,我认为这两个状态代码都是正确的。

出于某种原因,我正在使用 Frisby 2,这个库非常简单,你甚至不需要文档就可以使用它!

无论如何,在 Frisby 自己的单元测试中,它与正则表达式进行比较:

it('expectHeader should match with regex', function(doneFn) {
  mocks.use(['getUser1']);

  frisby.fetch(testHost + '/users/1')
    .expect('header', 'Content-Type', /json/)
    .done(doneFn);
});

伟大的!所以我会用它:

frisby.fetch('/rest/endpoint', {
    method: 'POST',
    body: form
})
.expect('status', /201|429/)

哦亲爱的

assert.strictEqual(received, expected)

Expected value to be (operator: ===):
  /201|429/
Received:
  429

Message:
  HTTP status /201|429/ !== 429

Difference:

  Comparing two different types of values. Expected regexp but received number.

我究竟做错了什么?

4

1 回答 1

0

看起来你可以回退到 Jasmine 做这种事情:

frisby.fetch('/rest/endpoint', {
    method: 'POST',
    body: form
})
.then(function (res) {
    expect(res.status === 201 || res.status === 429).toBe(true);
})
于 2018-04-09T03:55:27.310 回答