测试REST API
#node #api #测试 #休息

在Woovi我们喜欢GraphQl,但我们也为用户提供了公共REST API。
测试REST API比测试GraphQL API要难,因为REST接受任何类型的输入,因此您需要具有更好的验证。

撰写What to test in the backend后,我决定带一些更实际的How示例来测试后端。

测试简单的REST API

让我们为Woovi最常用的公共REST API,POST /charge

创建一个基本测试

发布 /费用创建一个即时付款请求,给定一个correlationID,我们的dempotency键以及它将返回可以读取可以读取付款人付款的pix qrcode的值。

import request from 'supertest';
import app from '../app';

it('should return 200 when request body is corret', async () => {
  // create fixtures
  await createCompany();

  const payload = {
    correlationID: 'correlationID',
    value: 10,
  };

  // make a POST request to /v1/charge endpoint
  const response = await request(app.callback())
    .post('/v1/charge')
    .set({
      Accept: 'application/json',
      'Content-Type': 'application/json',
      Authorization: authorization,
    })
    .send(JSON.stringify(payload));

  // assert response status and body
  expect(response.status).toBe(200);
  expect(response.body).toMatchSnapshot();

  // assert database modifications
});


在调用我们的端点之前,我们可以创建一些数据库灯具来模拟测试方案。然后,我们使用supertest软件包调用端点。我们主张响应状态和身体,也可以主张一些数据库修改。

这是一个快乐的情况,一切顺利。这是最简单的测试,在测试更多边缘案例和现实世界情景时,您会变得更加复杂。

简单来说

自动测试是快速移动而不会破坏事物的唯一方法。在Woovi,我们想要两者,我们希望尽可能快地移动,但我们不想为用户打破任何东西。
始终从最简单的测试场景开始,然后转到更复杂和边缘的案例。


woi
Woovi是一家创业公司,使购物者能够按照自己的意愿付款。为了实现这一目标,Woovi为商人提供即时付款解决方案接受订单。

如果您想与我们合作,我们是hiring


Christina @ wocintechchat.comUnsplash

照片