针对多种可能的响应进行测试(API,Frisby 2)

时间:2018-04-09 02:36:55

标签: javascript frisby.js

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

出于某种原因,我使用的是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.

我做错了什么?

1 个答案:

答案 0 :(得分:0)

看起来你可以回到Jasmine来做这件事:

frisby.fetch('/rest/endpoint', {
    method: 'POST',
    body: form
})
.then(function (res) {
    expect(res.status === 201 || res.status === 429).toBe(true);
})