๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿšจ ์—๋Ÿฌ

[Spring / TestCode] java.lang.AssertionError: Expecting code to raise a throwable.

by kekeyo 2025. 7. 14.
728x90

๋ฌธ์ œ ์ƒํ™ฉ

: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ค‘ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜๋ฏธ์ž„


์›์ธ

์šฐ์„  assertThatThrownBy๋Š”

// then
assertThatThrownBy(() -> commentService.editComment(VALID_USER_ID, VALID_POST_ID, VALID_COMMENT_ID, requestDto))
        .isInstanceOf(expectedException)
        .hasMessage(errorMessage.getMessage());

Java 8 lambda๋ฅผ ์ด์šฉํ•˜์—ฌ Throwable ์˜ˆ์™ธ๋ฅผ ๋” ์ž˜ ์žก์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ํ•ด๋‹น ์‚ฌ์ง„์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์•„๋ฌด ์˜ˆ์™ธ๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.


ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  1. ์—๋Ÿฌ ์บ์น˜ ์ƒํ™ฉ
    ๋‚œ ์ž˜๋ชป๋œ ์ฝ”๋“œ๋ฅผ ์งœ์„œ ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ์žก์ง€ ๋ชปํ•˜๋Š” ๊ตฌ์กฐ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.
    ๊ทธ๋Ÿฌ๋ฉด ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

  2. assertThatCode
    ๋งŒ์•ฝ ๋กœ์ง ์ƒ ๋ฐœ์ƒํ•  ์ˆ˜๋ฐ–์— ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด assertThatCode๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
    assertThatCode๋Š” ์‹คํŒจํ•  ์ˆ˜๋ฐ–์— ์—†๋Š” ์ฝ”๋“œ๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • assertThatThrownBy: ๋ฌด์กฐ๊ฑด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์•ผ ํ•จ. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํŒจ
  • assertThatCode: ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•ˆ๋จ. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹คํŒจ

์ฐธ๊ณ  ์ž๋ฃŒ

[javadoc-assertThatThrownBy]https://javadoc.io/doc/org.assertj/assertj-core/3.8.0/org/assertj/core/api/Assertions.html#assertThatThrownBy-org.assertj.core.api.ThrowableAssert.ThrowingCallable-
AssertThatThrownBy์™€ AssertThatCode์˜ ์ฐจ์ด

728x90