[ATDD] ํ ์คํธ ๊ฒฉ๋ฆฌ, ๋ฒ๊ทธ ์์ ์ต์ํ, ํ ์คํธ์ฝ๋์ ์ค๋ณต ์ ๊ฑฐ
์์ฝ ์ทจ์ ํ ์คํธ๊ฐ ํต๊ณผํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐ๋ก ๋ค์ ํ ์คํธ๊ฐ ์คํจํ๋ค.
Scenario: ์ทจ์ ๊ฐ๋ฅํ ์์ฝ์ ์ทจ์ํ๋ค → ์ฑ๊ณต (์์ฝ 1001: CONFIRMED → CANCELLED)
Scenario: ์์ฝ ์ํ๋ฅผ CHECKED_IN์ผ๋ก ๋ณ๊ฒฝ → ์คํจ (์์ฝ 1001: ์ด๋ฏธ CANCELLED ์ํ)
ํ ์คํธ ์ผ์ด์ค ๊ฐ์ด ๋ณ๊ฒฝ์ด ๋์ด ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค
DB ๋ฆฌ์ ๋์ , ์๋๋ฆฌ์ค ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ID๋ฅผ ์ฌ์ฉํ๋ค.
public class ReservationTestHelper {
// ๋ณ๊ฒฝํ๋ ์๋๋ฆฌ์ค์ฉ - ๊ฐ๊ฐ ์ ์ฉ ID
public static final int CANCEL_TARGET_ID = 1005;
public static final int CHECKIN_TARGET_ID = 1006;
public static final int CHECKOUT_TARGET_ID = 1007;
// ์กฐํ/์คํจ ์๋๋ฆฌ์ค์ฉ - ๊ณต์ ๊ฐ๋ฅ
public static final int CANCELLED_ID = 1003; // ์ด๋ฏธ ์ทจ์๋ ์ํ
public static final int CHECKED_OUT_ID = 1004; // ์ด๋ฏธ ์ฒดํฌ์์๋ ์ํ
}
ํน์ API ํธ์ถํด์ ํ ์คํธ๋ง๋ค ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ ๋๊ณ , ์๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ๋ ์๋ค
ํ ์คํธ๋ฅผ ์์ฑํ๋ค ๋ณด๋ ์๋ฌธ์ด ์๊ฒผ๋ค.
์ด๊ฒ ๋ฒ๊ทธ์ธ์ง, ์๋๋ ๋์์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ ์๋ ์คํ์ ์ฐ์ ๊ฒ์ฆํ๋ค.
๋ชจํธํ ๋ถ๋ถ๊น์ง ์ ๋ถ ํ ์คํธํ๋ ค ํ์ง ์๋๋ค. ์คํ ๋ฌธ์์ ๋ช ์๋ ๊ธฐ๋ฅ๋ถํฐ ๊ฒ์ฆํ๊ณ , ๋ชจํธํ ๋ถ๋ถ์ ์ฐ์ ์์๋ฅผ ๋ฎ์ถ๋ค.
"๋ฑ ๊ทธ ๋ถ๋ถ๋ง ๊ณ ์น๋ ค๋ค๊ฐ ๋ค๋ฅธ ๋ถ๋ถ๊น์ง ํจ๊ป ๊ณ ์น๋ค ๋ณด๋ฉด ์์ ๋ฒ์๊ฐ ๋๋ฌด ๋์ด์ ธ์ ๋กค๋ฐฑํ๋ ๊ฒฝ์ฐ๋ ์๋ค"
๋ฐ๋ผ์, ๋ฆฌํฉํฐ๋ง ์๊ตฌ๋ฅผ ์ฐธ๊ณ ์ผ๋จ ์ต์ํ์ ๋ถ๋ถ๋ง ๊ณ ์น๋ค.
ํ ์คํธ ์ฝ๋๋ ์ค๋ณต์ด ์์ด๋ฉด ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค. ์ฌ์ฌ์ฉ๋๋ ๋ก์ง์ Fixture๋ก ๋ฌถ์๋ค.
public class ReservationTestHelper {
// ํ
์คํธ์ฉ ๊ณ ์ ID
public static final int CANCEL_TARGET_ID = 1005;
public static final int CANCELLED_ID = 1003;
// API ํธ์ถ ๋ฉ์๋
public Response updateStatus(int id, String status) { ... }
// ๊ฒ์ฆ ์ ํธ๋ฆฌํฐ
public String getReservationStatus(int id) { ... }
}
ํ ์คํธ ์ฝ๋๊ฐ ๊น๋ํด์ง๊ณ , ๋ณ๊ฒฝ ์ ํ ๊ณณ๋ง ์์ ํ๋ฉด ๋๋ค.
| [ATDD] ์ธ์ํ ์คํธ, ํ ์คํธ๊ฒฉ๋ฆฌ, ํ ์คํธ ํฝ์ค์ฒ, RestAssured (0) | 2026.01.18 |
|---|