Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.71 KB

endpoint-testing.md

File metadata and controls

34 lines (25 loc) · 1.71 KB

訳注

これはendpoint-testing.mdの日本語訳です。こちらがAVAのmasterブランチとの差分のリンクになります(このリンクをクリックして、endpoint-testing.mdに変更点が見当たらなければ、この翻訳が最新であることを意味します)。


エンドポイントのテスト

AVAはエンドポイントのテストのためのビルトインメソッドを持っていませんが、どのようなアサーションライブラリでも一緒に利用できます。supertest-as-promisedを使ってみましょう。

テストを直列で実行するので、同じインスタンスを参照するとテスト間でお互いに打ち消しうるために、テスト毎に新たなサーバーインスタンスを作成するのがベストです。これは、test.beforeEacht.context、もしくは単純にファクトリー関数で実現できます。

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

次に、supertestにサーバーインスタンスを挿入します。唯一の落とし穴は、supertestのendメソッドの代わりにpromiseかasync/awaitの構文を使用することです:

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

	const res = await request(makeApp())
		.post('/signup')
		.send({email: 'ava@rocks.com', password: '123123'});

	t.is(res.status, 200);
	t.is(res.body.email, 'ava@rocks.com');
});