Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 2.12 KB

endpoint-testing.md

File metadata and controls

36 lines (26 loc) · 2.12 KB

备注

这是 endpoint-testing.md 的简体中文翻译。这个链接 用来查看本翻译与 AVA 的 master 分支是否有差别(如果你没有看到endpoint-testing.md发生变化,那就意味着这份翻译文档是最新的)。


端点测试

翻译:Español, Français, Italiano, 日本語, Português, Русский, 简体中文

AVA 没有内嵌的方法可以来做端点测试,但你可以用其他断言库来做,让我们用 supertest-as-promised 来看看。

因为测试是并发执行的,所以最好是为每个测试建立一个新的服务器实例,如果所有测试都引用同一个实例,那实例可能会被不同的测试改变状态。这可以在test.beforeEacht.context里完成,或者简单的工厂方法:

function makeApp() {
    const app = express();
    app.post('/signup', signupHandler);
    return app;
}

然后,将你的服务器注入到测试超类中,主要的点是用 promise 或 async/await 语法来代替测试超类的end方法:

test('signup:Success', async t => {
    t.plan(2);

    const res = await request(makeApp())
        .post('/signup')
        .send({email: '[email protected]', password: '123123'});

    t.is(res.status, 200);
    t.is(res.body.email, '[email protected]');
});