在我的 chai REST-API 测试中,我应该为 payload 和 headers 使用什么格式?

What format should I use for payload and headers in my chai REST-API test?

我正在使用集成 Chai 的代码概念测试框架中设置 REST-API 测试。

在检查了 CodeceptJS 文档中关于该主题的非常基本的文档之后,我似乎无法让我的测试工作。

const expect = require('chai').expect;

Feature('Checkout');

Scenario('Create a customer', async I => {
  const payload = ({
    first_name: 'Dummy title',
    last_name: 'Dummy description',
    email: 'john@test.com',
    locale: 'fr-CA',
    billing_address[first_name]: 'John',
    billing_address[last_name]: 'Doe',
    billing_address[line1]: 'PO Box 9999',
    billing_address[city]: 'Walnut',
    billing_address[state]: 'California',
    billing_address[zip]: '91789',
    billing_address[country]: 'US'
})
  const header = ({Content-Type: 'application/x-www-form-urlencoded'})

  const res = await I.sendPostRequest('https://mytesturl- 
   api.com/api/',payload,header);
  expect(res.code).eql(200);
});

为了便于使用和阅读,我已将我的有效负载和 header 放在一个变量中。

但它不起作用,一直给我意外的令牌 [

我想通了。

将有效负载格式化为字符串的方式(参见下面的示例)

const expect = require('chai').expect;

Feature('Checkout');

Scenario('Create a customer', async I => {
 const payload = ({
  first_name: 'Dummy title',
  last_name: 'Dummy description',
  email: 'john@test.com',
  locale: 'fr-CA',
  'billing_address[first_name]': 'John',
  'billing_address[last_name]': 'Doe',
  'billing_address[line1]': 'PO Box 9999',
  'billing_address[city]': 'Walnut',
  'billing_address[state]': 'California',
  'billing_address[zip]': '91789',
  'billing_address[country]': 'US'
  })

const header = ({Content-Type: 'application/x-www-form-urlencoded'})

const res = await I.sendPostRequest('https://mytesturl-api.com/api/',payload,header);

expect(res.code).eql(200);
});