在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!
照片