Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 2.31 KB

testing.md

File metadata and controls

64 lines (44 loc) · 2.31 KB

테스트

코드 컨벤션 및 스타일 준수

# formatter
deno fmt

# lint
deno lint

테스트 실행

test.mp4
# 타입 검사를 포함해 각 엔드포인트를 테스트합니다.
deno task test

# 타입 검사를 생략하고 파일에 변화가 생길 때마다 다시 테스트합니다.
deno task test:no-check

테스트 작성

import { assertEquals } from "https://deno.land/[email protected]/assert/assert_equals.ts" // 두 값을 깊게 비교합니다.
import { tempAppFrom } from "../test_utils.ts" // 테스트를 위한 임시 앱을 생성합니다. 컨트롤러를 인자로 받습니다.
import { helloController } from "./hello_controller.ts" // 테스트할 컨트롤러입니다.

// 테스트에 사용할 임시 앱을 생성합니다.
// in-memory DB를 사용하므로, 테스트 실행이 DB에 영향을 주지 않습니다.
const { client } = await tempAppFrom(helloController)

Deno.test(`GET /hello/world`, async () => {
	// 각 엔드포인트와 메서드별로 요청을 보냅니다.
	// 반환값은 Response 객체입니다.
	const res = await client.hello[":name"].$get({ param: { name: "world" } })
	const json = await res.json()

	// assertEquals를 통해 두 값을 비교합니다.
	assertEquals(res.status, 200)
	assertEquals(json, { message: "hello world" })
})

배포

deno deploy를 통해 main 브랜치에 커밋될 때마다 자동으로 swagger UI가 배포됩니다.

PR에서 배포 확인

image

PR에서도 실시간으로 배포된 API와 Swagger UI를 확인할 수 있습니다.

  • Deno/wanted-w1-social-feed: 현재 커밋이 배포된 API 링크입니다.
  • Deno/wanted-w1-social-feed/wanted-w1-social-feed--<브랜치명>.deno.dev: PR 최신 커밋에서 배포된 API입니다.