Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 2.26 KB

endpoint-testing.md

File metadata and controls

50 lines (34 loc) · 2.26 KB

역자주

이 문서는 endpoint-testing.md의 한국어 번역입니다. 이곳에서 AVA의 master 브랜치와 이 문서의 차이를 확인할 수 있습니다. (만약 차이가 없다면 문서가 최신 버전임을 의미합니다)


엔드 포인트 테스팅 (Endpoint testing)

StackBlitz 예제 코드 보기

AVA는 엔드 포인트를 테스트하기 위한 빌트인 기능을 지원하지 않지만, 원하는 HTTP 클라이언트 (예, got)를 선택해 사용할 수 있습니다.

또한 테스트를 병렬로 실행할 수 있도록 고유한 포트에서 HTTP 서버를 시작해야 합니다.

이를 위해 test-listen 라이브러리를 추천합니다.

테스트가 동시에(concurrently) 실행되므로 각 테스트에 대해, 또는 적어도 각 테스트 파일들에 대해 새 서버 인스턴스를 만드는 것이 가장 좋습니다.

이것은 test.before(), test.beforeEach() hook 및 t.context를 사용해 달성될 수 있습니다.

test.before() hook을 사용하여 서버를 시작할 경우, 테스트가 연속적으로(serially) 실행됨을 보장해야 합니다.

아래의 예제를 확인하세요.:

const http = require('http');
const test = require('ava');
const got = require('got');
const listen = require('test-listen');
const app = require('../app');

test.before(async t => {
	t.context.server = http.createServer(app);
	t.context.prefixUrl = await listen(t.context.server);
});

test.after.always(t => {
	t.context.server.close();
});

test.serial('get /user', async t => {
	const {email} = await got('user', {prefixUrl: t.context.prefixUrl}).json();
	t.is(email, 'ava@rocks.com');
});

유용할 수 있는 다른 라이브러리들: