Junit4: JUnit 4.13 ์ถœ์‹œ

์— ๋งŒ๋“  2018๋…„ 02์›” 06์ผ  ยท  108์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: junit-team/junit4

์ด ๋ฌธ์ œ๋Š” JUnit 4.13์„ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

4.13-beta-1์ด ์˜ค๋Š˜ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ Maven Central์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  108 ๋Œ“๊ธ€

@junit-team/junit-committers 4.13 ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถˆํ–‰ํžˆ๋„ ๋‚˜๋Š” ํ•˜๋ฃจ ์ผ๊ณผ๊ฐ€ ๋„ˆ๋ฌด ๋ฐ”๋น ์„œ 4.13 ๋ฆด๋ฆฌ์Šค๋ฅผ ์šด์ „ํ•  ์ˆ˜ ์—†์ง€๋งŒ ํ™•์‹คํžˆ ๋„์šธ ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

Milestone 4.13๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ์ถœ๋ฐœ์ ์œผ๋กœ ์‚ผ์•˜์ง€๋งŒ ์ด์ •ํ‘œ์—๋Š” ์ฃผ์„ ์Šค๋ ˆ๋“œ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ผ์ • ๋ฐ ์—ฌ๊ธฐ์— ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ํ•œ ๊ฐ€์ง€๋Š” Assert.assertThrows / expectThrows ์„ ๋ชฉ์„ฑ์˜ Assertions.assertThrows ๋งž์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฃผ์œ„์— ์•ฝ๊ฐ„์˜ ๋…ผ๋ž€์ด ์žˆ์—ˆ๋‹ค ์•Œ๊ณ  ๋ชฉ์„ฑ์˜ ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐ ํ•ด์ œ ๋œ ๊ฒƒ์„ ๋‹ค์‹œํ•˜๋ฉด์„œํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ Assert.assertThrows ํ•˜๊ณ  ์ด๋ฆ„์„ ๋ณ€๊ฒฝ expectThrows ์— assertThrows . ์ด์˜๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”?

๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋Š” ๋งˆ์ง€๋ง‰ ์‹œ๋„๋Š” #1396์ด์—ˆ์Šต๋‹ˆ๋‹ค.

assertThrows ๋ฐ expectThrows ๋ณ‘ํ•ฉ์— ๋Œ€ํ•œ ๋…ผ์Ÿ์˜ ์–‘๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ expectThrows ์ œ๊ฑฐํ•˜๊ณ  assertThrows ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์žกํžŒ ์˜ˆ์™ธ. ์ด ๋ฐฉ๋ฒ•์„ 4.x์— ์ถ”๊ฐ€ํ•˜์—ฌ ์›๋ž˜ ํ’€์— ๊ด€๋ จ๋œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ์ด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๋ฆด ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฐฉํ–ฅ์— ๊ด€๊ณ„์—†์ด ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ํ™”๋ฅผ ๋ƒˆ์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋™์•ˆ assertThrows(Class<T> expectedType, Executable executable, String message) ๋ฅผ JUnit4๋กœ ์ด์‹ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค(https://github.com/junit-team/junit5/commit/ea67ca0 ์ฐธ์กฐ).

4.13 ๋ฆด๋ฆฌ์Šค์— ์–ด๋–ค ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@zjffdu ๋„ค. ์ฐธ์กฐ https://github.com/junit-team/junit4/pulse/monthly์„ ์ตœ๊ทผ์˜ ์ผ๊ณผ์— ๋Œ€ํ•œ https://github.com/junit-team/junit4/milestone/3 ์ œ์•ˆ ๋œ ๋‚˜๋จธ์ง€ ์ž‘์—….

@kcooney
@marcphilipp
๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค 4.12 ์ดํ›„ ๊ฑฐ์˜ 4๋…„์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.
๋” ๊นŠ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด 4.13-beta-1 ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์„ ์ž˜๋ผ๋ƒ…๋‹ˆ๋‹ค.

๋‚˜๋Š”(๋‚ด ์กฐ์ง, ์ •๋ง๋กœ) TemporaryFolder (ํŠนํžˆ ์ด์Šˆ #1223)์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋œ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— JUnit 4.13์„ ์–ป๋Š” ๋ฐ ์ •๋ง ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌ(4.12์—์„œ)ํ•˜๊ณ , TemporaryFolder ์ˆ˜์ • ์‚ฌํ•ญ์„ ์„ ๋ณ„ํ•˜๊ณ , 4.13์ด ์‹ค์ œ๋กœ ๋ฆด๋ฆฌ์Šค๋  ๋•Œ๊นŒ์ง€ ์—ฌ๊ธฐ์—์„œ ์ƒ์„ฑ๋œ JUnit ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์•„์ง ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ •์ƒ์ ์ธ์ง€ ํ‰๊ฐ€ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.) ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•  ํ”„๋กœ์ ํŠธ ์ค‘ ์ ์–ด๋„ ์ผ๋ถ€๋Š” ๊ณต๊ฐœ/OSS ํ”„๋กœ์ ํŠธ์ด๋ฏ€๋กœ ํฌํฌ์—์„œ ์ƒ์„ฑ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์†Œ์œ ํ•œ Maven ๊ทธ๋ฃน)์„ Maven Central๋กœ. ๊ทธ๋Ÿฌ๋‚˜ ๊ณง 4.13์„ ์ค‘๋‹จํ•  ๊ณ„ํš์ด๋ผ๋ฉด ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (JUnit 5๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์ด ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ TemporaryFolder ์•„์ง ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

์ƒ๊ฐ?

๋ฒ„๊ทธ ์ˆ˜์ •์„ ํ™œ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น๋ถ„๊ฐ„ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ 4.13์„ ๋นŒ๋“œํ•˜๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@cljohnso ์ž์‹ ์˜ JUnit ๋ฒ„์ „์„ Maven์— ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ JUnit์˜ ๊ณต์‹ ๋ฒ„์ „์— ์˜์กดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‘ ์ข…์†์„ฑ์„ ๋ชจ๋‘ ๊ฐ–๋Š” ๊ฒฝ์šฐ ํด๋ž˜์Šค ๊ฒฝ๋กœ์— ์ค‘๋ณต ํด๋ž˜์Šค๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ JUnit์€ ์ž์› ๋ด‰์‚ฌ์ž(๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด JUnit 5์—์„œ ์ž‘์—…ํ•จ)์— ์˜ํ•ด ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์˜ˆ์ƒ๋ณด๋‹ค ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์ค€๋น„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ๋ฆด๋ฆฌ์Šค ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ pull ์š”์ฒญ์ด ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค( ์ด ๋ฒ„๊ทธ ์ฐธ์กฐ).

4.13 ์— ๋Œ€ํ•œ ์ฐจ๋‹จ ๋ฒ„๊ทธ

4.13์— ํ• ๋‹น๋œ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@junit-team/junit-committers 4.13์„ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ ์ „์— ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@marcphilipp ์ด๋Ÿฌํ•œ ๋น„๊ณต๊ฐœ ํ’€ ์š”์ฒญ์€ ๋ฆด๋ฆฌ์Šค ์ •๋ณด์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/junit-team/junit4/issues?utf8= โœ“&q=label%3A"needs+release+notes+update"+

๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์™„์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ๋‘ ๊ฐœ์˜ ์ƒˆ๋กœ์šด pull ์š”์ฒญ์ธ #1551๊ณผ #1552๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ #1552๋Š” 4.13์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”,

์ด ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ผ์ •์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ•ฉํ•˜๊ธฐ๋ฅผ ํฌ๋งํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ‘œ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@johnterrill 4.13์— ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(๋ฒ„๊ทธ ์ˆ˜์ •๋งŒ).

์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”. ์ฆ‰, JUnit์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์€ junit5 ์ €์žฅ์†Œ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

@kcooney 4.13 ์— ๋ฒ„๊ทธ ์ˆ˜์ •๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์ด๋ฆ„์„ 4.12.1 ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์•„์ง ์ง„ํ–‰์ค‘์ธ ์ž‘์—…์ด ์žˆ๋‚˜์š”?

๋ฒ„๊ทธ ์ˆ˜์ •๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฃผ๋ฌธ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 4.13์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค ์ •๋ณด์—๋Š” ์—ฌ์ „ํžˆ 5๊ฐœ์˜ PR์ด ๋ˆ„๋ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋ ˆ ๋…์ผ์— ๋Œ์•„์˜ค๋ฉด ๊ทธ๋“ค์„ ๋Œ๋ณธ๋‹ค. AFAIK ์ด๊ฒƒ์ด ๋‚จ์€ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

@marcphilipp JUnit 4.13์„ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

JUnit 4.13๊ณผ ํ•จ๊ป˜ #1568์ด ๋ฆด๋ฆฌ์Šค๋˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ(๊ด€๋ฆฌ์ž ์ค‘ ํ•œ ์‚ฌ๋žŒ์˜ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•จ) ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

4.13 ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ ๋˜์–ด ๋งค์šฐ ๊ธฐ์ฉ๋‹ˆ๋‹ค. :)

@robinyqu
๋‚˜๋Š” ๊ทธ๋“ค์ด JUnit์„ ์ค‘๋‹จํ•  ๊ณ„ํš์ด์—ˆ๊ณ  4.13์ด ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์ด์–ด์•ผ ํ–ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. 103๊ฐœ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ์™€ ๋ช‡ ๊ฐ€์ง€ ๋ณด๋ฅ˜ ์ค‘์ธ pull ์š”์ฒญ์ด ์žˆ์œผ๋ฏ€๋กœ ๋ฒ„์ „์„ ๊ณ„์† ๊ฐœ๋ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๋ฆด๋ฆฌ์Šค ํ›„๋ณด ๋ฒ„์ „์„ ์ž˜๋ผ๋‚ด๋Š” ๊ฒƒ์ด๋ฉฐ ๋ฒ„๊ทธ ๋ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ˆ˜์— ๊ด€ํ•œ ํ†ต๊ณ„๋กœ ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚ ์ง€ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ 4.13์„ ์ถœ์‹œํ•  ๊ณ„ํš์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ˆ˜๋งŽ์€ ๊ฐœ์„  ์‚ฌํ•ญ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ณ‘ํ•ฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—).

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ƒ๊ฐ์ด ๋๋‚˜๊ธฐ ์ „์— ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์  ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์›๋ž˜ JUnit ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” JUnit 5๋ฅผ ์ง€์›ํ•˜๋Š๋ผ ๋ฐ”์˜๊ฑฐ๋‚˜ JUnit ์ž‘์—…์—์„œ ํ•œ ๋ฐœ ๋ฌผ๋Ÿฌ์„ฐ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ 4.x ์ฝ”๋“œ ๋ผ์ธ์ด๋ผ๋ฉด 4.13์ด ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Tibor17 @kcooney ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! 4.13 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์–ธ์ œ ๋‚˜์˜ฌ์ง€ ๋Œ€๋žต์ ์œผ๋กœ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ?

@robinyqiu ์ €๋Š” ์ปค๋ฏธํ„ฐ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์˜ค๋žซ๋™์•ˆ ๊ธฐ์—ฌํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.
@kcooney ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋‹ค์Œ ์ฃผ ๋˜๋Š” ๋ช‡ ๋‹ฌ ๋™์•ˆ์˜ ์ถœ์‹œ ๊ณ„ํš์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ œ์‹œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ „ ์„ธ๊ณ„๊ฐ€ JUnit4์— ์˜ค๋žซ๋™์•ˆ ์˜์กดํ•˜๊ณ  ์žˆ๊ณ  ์•ž์œผ๋กœ๋„ ๊ณ„์† ๊ทธ๋Ÿด ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— JUnit4๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๊ณ  pull ์š”์ฒญ์ด ์—†๋Š” ์ƒํƒœ๋กœ ๋งˆ๋ฌด๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์—ฌ์ „ํžˆ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด ๋ณด์ด๋ฉด ํ•ด๋‹น ์š”์ฒญ์ด JUnit5์— ์žˆ๊ณ  ๋” ์ด์ƒ JUnit4์—๋Š” ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๋ฉด์„œ ๋‹ซ์œผ์‹ญ์‹œ์˜ค.
์šฐ๋ฆฌ์˜ ๋ฌธ์ œ๋Š” ์ˆ˜์ •๋˜์–ด์•ผ ํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ๋ฐ›์•„๋“ค์—ฌ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ pull ์š”์ฒญ์€ ์šฐ๋ฆฌ๊ฐ€ PR์„ ์ƒ์„ฑํ•œ ์‚ฌ๋žŒ๊ณผ ํ•ฉ์˜์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ซ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Tibor17 ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ˆ˜๋ฝํ•ด์•ผ ํ•˜๋Š” pull ์š”์ฒญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์–ด๋Š ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๋Š” 4.13(์šฐ๋ฆฌ๋Š” ๊ฑฐ์˜ 4๋…„ ์ „์— 4.12๋ฅผ ๋ฆด๋ฆฌ์Šค)์˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณธ์งˆ์ ์œผ๋กœ JUnit 4.x์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ํŒŒ์‚ฐ ์‹ ์ฒญ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ๋Š๋ผ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ™•์‹คํžˆ ๊ทธ ๊ณผ์ •์„ ๊ฒช์„ ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์œ ์ง€ ๊ด€๋ฆฌ์‚ฌ ์ค‘ ํ•œ ๋ช…์ด ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@marcphilipp 4.13 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค‘๋‹จํ•  ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ? @kcooney , @dsaff ์ด์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@kcooney ์˜ˆ, 2015๋…„๋ถ€ํ„ฐ 2017๋…„๊นŒ์ง€ ๋‹ซ์•„์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง„์ง€ํ•˜๊ฒŒ ๊ทธ๋“ค์„ ๊ณ„์†ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๋ช…ํ™•ํ•œ ๊ทธ๋ฆผ๊ณผ ์‹ ํ˜ธ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‚จ์€ ๋ฌธ์ œ๋Š” ์žฌ์กฐ์‚ฌํ•˜๊ณ  ๊ทธ ๋ฌธ์ œ์—๋งŒ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋‹ค์‹œ ์†์„ ์”ป๊ณ  ๋งˆ์นจ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค 4.13์„ ์ž˜๋ผ๋‚ผ ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋„ค, ์ฃผ๋ง์— ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € 4.13-RC1 ๋˜๋Š” 4.13-beta-1์„ ๋ฐฐ์†กํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

4.13-beta-1 ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค์˜ ๋ช…๋ช… ์ฒด๊ณ„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

4.13-beta-1 ์— ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉด 4.13 ์ดํ›„์— ์–ผ๋งˆ๋‚˜ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด์ฃผ?

๋ฆด๋ฆฌ์Šค๋ฅผ ์ค‘๋‹จํ•˜๋Š” ๋ฐ ์ด์˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. RC1 ๋Œ€ ๋ฒ ํƒ€-1์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ์˜๊ฒฌ์ด ์—†์Šต๋‹ˆ๋‹ค.

4.13-beta-1์ด ์˜ค๋Š˜ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ Maven Central์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@marcphilipp ๊ฐ์‚ฌ

Hamcrest ๊ฐ€ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ•  ์˜ˆ์ •์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(hamcrest/JavaHamcrest#224 ์ฐธ์กฐ). ๋ฆด๋ฆฌ์Šค ํ›„๋ณด๋Š” ์ด๋ฏธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(https://github.com/hamcrest/JavaHamcrest/releases).

Hamcrest์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์ƒˆ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์—…๋ฐ์ดํŠธ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ• ๊นŒ์š”?

@BlueIce ์ด ๋ฌธ์ œ๋ฅผ

JUnit 4๋Š” ์—ฌ์ „ํžˆ Java 5์™€ ํ˜ธํ™˜๋˜๋ฏ€๋กœ Java 7์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Hamcrest 2.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ POM์—์„œ Hamcrest optional ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ์šฉ์ž๋Š” Hamcrest๋ฅผ ์‚ฌ์šฉํ• ์ง€, ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์•„ํ‹ฐํŒฉํŠธ์™€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ• ์ง€ ์˜์‹์ ์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@tumbarumba @junit-team/junit-committers WDYT?

์•ˆ๋…•ํ•˜์„ธ์š”, Hamcrest ์ปค๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ํ˜„์žฌ Hamcrest์˜ 2.1 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Hamcrest ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์— v2.1-rc3๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ ๋ฒ„์ „ ๋ฒˆํ˜ธ์˜ ์ฆ๊ฐ€์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ๋ฆด๋ฆฌ์Šค๋Š” 1.3(๊ธด ์ด์•ผ๊ธฐ)๊ณผ ์—ญํ˜ธํ™˜๋˜๋„๋ก ์˜๋„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ: ๋ฒ„์ „ Hamcrest 2.1์—์„œ๋Š” ํ•ญ์•„๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง•๋˜๋Š” ๋ฐฉ์‹์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. hamcrest-core ๋ฐ hamcrest-library ๊ฐ€ ๋‹จ์ผ ์•„ํ‹ฐํŒฉํŠธ hamcrest (์˜ˆ: hamcrest-2.1.jar )๋กœ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด hamcrest-core ๋ฐ hamcrest-library ์•„ํ‹ฐํŒฉํŠธ์˜ 2.1 ๋ฒ„์ „์„ ๊ณ„์† ์ถœ์‹œํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ•ญ์•„๋ฆฌ๋Š” ๋น„์–ด ์žˆ์œผ๋ฉฐ hamcrest-2.1.jar ์— ๋Œ€ํ•œ ์ „์ด ์ข…์†์„ฑ์„ ํ†ตํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์„ ํƒ์  ์ข…์†์„ฑ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Assertions.assertThat(...) ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์˜์กด์„ฑ์ด ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์‚ฌ์šฉ ๋งค์ฒ˜ (Matchers)์„ ํ•  ๊ฒฝ์šฐ, ๋ช…์‹œ ์  ์ค‘ ํ•˜๋‚˜์— ๋”ฐ๋ผ ์„ ์–ธ hamcrest-core-1.3.jar ๋˜๋Š” hamcrest-2.1.jar ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (I๋Š”ํ•˜์ง€๋งŒ,์ด ํ…Œ์ŠคํŠธ๋ฅผํ•˜์ง€ ์•Š์€๋ฅผ!)

๋‚ด ๊ฐœ์ธ์ ์ธ ์ทจํ–ฅ: JUnit 4.13์ด hamcrest-2.1.jar ์— ์ง์ ‘ ์˜์กดํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฐ€์žฅ ๋†€๋ผ์šด ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฒฝ๋กœ๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@tumbarumba
Java Hamcrest 2.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ @marcphilipp๊ฐ€ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Java 1.5์˜ ํ˜ธํ™˜์„ฑ ์ด์œ  ๋•Œ๋ฌธ์— JUnit์—์„œ ์ •ํ™•ํžˆ ๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.
hamcrest-core ์ด hamcrest ์— ๊ณผ๋„ํ•˜๊ฒŒ ์˜์กดํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•œ ๊ฒƒ์— ๋”ฐ๋ฅด๋ฉด ์‚ฌ์šฉ์ž๋กœ์„œ ๋‚ด POM์˜ dependencyManagement ์—์„œ ๋” ๋†’์€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‚˜๋Š” hamcrest-library:1.3 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๋ฒ„์ „์„ 2.1 ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์ด๋ฉฐ ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. JUnit5 ํ”„๋กœ์ ํŠธ๋Š” hamcrest:2.1 ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๊ฑด ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

์•„, JUnit 4๊ฐ€ Java 5์™€ ํ˜ธํ™˜๋œ๋‹ค๋Š” ์š”์ ์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์€ JUnit 4.x๊ฐ€ ์ ์–ด๋„ ์ง์ ‘์ ์œผ๋กœ๋Š” ์•„๋‹ˆ๋”๋ผ๋„ Hamcrest 2.0 ์ด์ƒ์— ์˜์กดํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. JUnit 5๋Š” ํƒ€์‚ฌ ๋งค์ฒ˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฏ€๋กœ Hamcrest์™€ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์˜ต์…˜: JUnit 4.13์€ Hamcrest 1.3์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ Hamcrest 2.1์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋ฒ„์ „ ์ถฉ๋Œ ํ•ด๊ฒฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  hamcrest-core-2.1.jar ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋จผ์ € ์„ ์–ธ๋˜๋Š” ํ•œ).

๋˜ ๋‹ค๋ฅธ ์˜ต์…˜: pom <optional> ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. hamcrest-core-1.3.jar ๋ฐ hamcrest-2.1.jar ๋ชจ๋‘์— ๋Œ€ํ•œ ์„ ํƒ์  ์ข…์†์„ฑ์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ?

@tumbarumba
JUnit์˜ POM์—์„œ optional ์ข…์†์„ฑ hamcrest-2.1.jar ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ POM์œผ๋กœ ์ƒ์†ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ hamcrest-2.1.jar ๋ฅผ ์ „ํ˜€ ์„ ์–ธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ์ „์ด ์ข…์†์„ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋ฉฐ์น  ๋™์•ˆ ์ˆ™๊ณ ํ•œ ๊ฒฐ๊ณผ, ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด hamcrest-core:1.3 ๋Œ€ํ•œ ํ•„์ˆ˜ ์ข…์†์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋“๋ณด๋‹ค ์‹ค์ด ๋งŽ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Hamcrest 2.1์„ ์–ธ๊ธ‰ํ•˜๋Š” ๋ฆด๋ฆฌ์Šค ์ •๋ณด์— ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, Hamcrest์˜ ์›น์‚ฌ์ดํŠธ๋‚˜ ์œ„ํ‚ค์—์„œ JUnit 4.x์™€ ๋‹ค๋ฅธ ๋นŒ๋“œ ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์ƒˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” JUnit 4.13 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ์ด ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tumbarumba WDYT?

@marcphilipp๋‹˜์˜ ๊ฒฐ๋ก ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด Java 1.5์— ๋Œ€ํ•œ JUnit 4 ์ข…์†์„ฑ์€ Hamcrest 2.x๋ฅผ ์™„์ „ํžˆ ๋ฐฐ์ œํ•˜๊ณ  ์„ ํƒ์  ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ์™€ ๊ด€๋ จํ•˜์—ฌ Hamcrest ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ ํ’€ ์š”์ฒญ์ด ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค(hamcrest/JavaHamcrest#237 ์ฐธ์กฐ). ์ด์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Hamcrest 2.1 ๋ฌธ์„œ๋Š” https://tumbarumba.github.io/JavaHamcrest (ํŠนํžˆ Hamcrest 1.x ์—์„œ

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค์˜ ์ผ๋ถ€ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด Hamcrest 2.1์˜ ๋˜ ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค ํ›„๋ณด๋ฅผ ๋ฆด๋ฆฌ์Šคํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋งˆ์ง€๋ง‰ RC๊ฐ€ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค(๋” ์ด์ƒ์˜ ํ”ผ๋“œ๋ฐฑ์ด ์—†๋Š” ํ•œ). ๋‹ค์Œ Hamcrest ๋ฆด๋ฆฌ์Šค๋ฅผ ๋”ฐ๋ฅด๋ ค๋ฉด hamcrest/JavaHamcrest#224๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

4.13-beta-1์ด ์ถœ์‹œ๋œ ์ง€ 3์ฃผ๊ฐ€ ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… 4.13 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ijuma https://github.com/junit-team/junit4/milestone/8 ์€ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

#1569๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#1569๋ฅผ ํฌํ•จํ•˜๊ณ  4.13-beta-2๋ฅผ ๋ฆด๋ฆฌ์Šคํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ•ด๋‹น ์ด์ •ํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ ํƒ€-2/GA๊ฐ€ ์–ธ์ œ ์ถœ์‹œ๋˜๊ธฐ๋ฅผ ํฌ๋งํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? 4.13์ด ๋„ˆ๋ฌด ์ข‹์•„์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์•„์ง '๋ฒ ํƒ€' ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ผ์ƒ ์—…๋ฌด์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.:-(

์ด์ œ #1586์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ์•ž์œผ๋กœ ๋ฉฐ์น  ๋‚ด์— 4.13-beta-2๋ฅผ ๋ฆด๋ฆฌ์Šคํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@junit-team/junit-committers ์ด์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด์˜ ์—†์Œ ๐Ÿ˜Š

4.13-beta-2๊ฐ€ ์ถœ์‹œ๋˜์–ด ํ…Œ์ŠคํŠธํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4.13-beta-2 ์ดํ›„ ํ•œ ๋‹ฌ์ด ๋„˜์—ˆ๊ณ  ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ณด๊ณ ๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค(#1593 ์ œ์™ธ). ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•ž์œผ๋กœ ๋ฉฐ์น  ์•ˆ์— 4.13์„ ์ถœ์‹œํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@junit-team/junit-committers ์ด์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

Apache Kafka์šฉ 4.13-beta-2๋ฅผ ๋ฌธ์ œ ์—†์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ijuma ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด์˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง์žฅ์—์„œ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ Google์—์„œ 4.13์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ๋‘ ๊ฐœ์˜ ๊ฒฝ๊ณ (๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌ๋จ)๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ๋‘ ๊ฐœ์˜ ํ’€ ์š”์ฒญ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. 4.13์—์„œ ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ์ฃผ์ผ ์ •๋„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋ ๊นŒ์š”?

๋˜๋Š” 4/13์„ ํƒ€๊ฒŸํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;-)

@kcooney ๋ง์”€ํ•˜์‹  2๊ฐœ์˜ PR์ด #1596๊ณผ #1597์ธ ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ? 4/13์€ ์™„๋ฒฝํ•œ ๋ชฉํ‘œ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค :-)

๊ฒ€์ฆ์ด ์ž˜ ๋œ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ž.

์žฌ๋ฏธ์žˆ๋Š” ์‚ฌ์‹ค: 4.12๊ฐ€ 12/4์— ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‰

@kcooney ๋ง์”€ํ•˜์‹  2๊ฐœ์˜ PR์ด #1596๊ณผ #1597์ธ ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ?

์˜ˆ.

๋‚˜๋Š” Mockito์˜ DefaultInternalRunner ์—์„œ ํšŒ๊ท€๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์ง€๋งŒ ๋ฌธ์ œ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  testFinished ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ParentRunner์˜ ์—ญ์‚ฌ์—์„œ ๋‚˜๋Š” ์–ด๋–ค ๋ช…๋ฐฑํ•œ ๋ฌธ์ œ๋„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

4.13์—์„œ ํšŒ๊ท€ํ•˜๊ณ  4.12์—์„œ ํ†ต๊ณผํ•˜๋Š” ํ…Œ์ŠคํŠธ๋Š” https://github.com/mockito/mockito/blob/a323b8132de6f6e1c29d738de245469f8ce009b0/src/test/java/org/mockito/internal/runners/java ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์„ ๊ณ„์†ํ•˜์ง€๋งŒ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@TimvdLippe RunListener.testFinished() ๋Œ€ํ•œ Javadoc ์ƒํƒœ:

"ํ…Œ์ŠคํŠธ ์„ฑ๊ณต ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์›์ž์„ฑ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค." 4.12์™€ 4.13 ์‚ฌ์ด์— ๋‹ค๋ฅธ ๋™์ž‘์ด ๋‚˜ํƒ€๋‚˜๋Š” ์ด์œ ๋ฅผ ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ 4.13์— ๋Œ€ํ•ด ๋ณด๊ณ  ์žˆ๋Š” ๋™์ž‘์ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

JUnit 4.12 ํ†ตํ•ฉ์ด ๊นจ์งˆ๊นŒ ๋‘๋ ต๊ธด ํ•˜์ง€๋งŒ JUnit 4.13์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋™์ž‘์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด์ผ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Mockito์—์„œ #1599๋กœ ์žฌ์ƒ์‚ฐ ์ผ€์ด์Šค๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. withBefores ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ๊ธฐ๋ฐ˜์—์„œ 4.13์„ ํ…Œ์ŠคํŠธํ•  ๋•Œ #1421์ด ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

#1421๋กœ ๋˜๋Œ๋ฆฌ๋Š” PR์„ ์ œ์ถœํ•  ์‹œ๊ฐ„์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@panchenko๊ฐ€ #1602์— ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@kcooney ๋ฒ ํƒ€๋ฒ„์ „์„

@marcphilipp ๋‹น์‹ ์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 4.12์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค(4.13์˜ ์‹œํ—˜ํŒ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ํ•ด๋‹น).

์šฐ๋ฆฌ์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค์—์„œ ์ €๋Š” ํ˜„์žฌ null ๋ฅผ FrameworkMethod ์ƒ์„ฑ์ž ๐Ÿ™„์— ์ „๋‹ฌํ•˜๋Š” ๋งŽ์€ ๊ณณ์„ ์‚ดํŽด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

@kcooney ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ†ต๊ณผํ•˜๊ณ  ์ตœ์ข… ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@marcphilipp ๋‹ต์žฅ์ด ๋Šฆ์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค(ํœด๊ฐ€ ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค). ํ˜„์žฌ ํ…Œ์ŠคํŠธ์˜ 2.9%๊ฐ€ JUnit 4.13์—์„œ ์‹คํŒจํ•˜์ง€๋งŒ ์ผ๋ถ€๋Š” ์ผ์‹œ์ ์ธ ์‹คํŒจ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™ ์ƒ˜ํ”Œ์—์„œ๋Š” 4.13์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์ง€๋งŒ ์•„์ง ํ•ด๊ฒฐํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

@kcooney ๊ฑฑ์ •๋งˆ ! ๊ทธ๋ž˜์„œ, ๊ฒฌ์ ์ด ์—†์Šต๋‹ˆ๋‹ค, ๊ทธ๋ ‡์ฃ ? ๐Ÿ˜‰

@marcphilipp ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋จธ์ง€ ์‹คํŒจ๋Š” ์˜์‹ฌ์Šค๋Ÿฌ์šด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ํ…Œ์ŠคํŠธ์ด๋ฏ€๋กœ 4.13์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐค ๋ชจ๋“  ์‹คํŒจ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

์˜์‹ฌ์Šค๋Ÿฌ์šด ์ผ์„ ํ•˜์—ฌ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ:

์šฐ๋ฆฌ๋Š” ์„œ๋ธŒํด๋ž˜์Šค์— ๊ธฐ๋ณธ ํด๋ž˜์Šค ํ•„๋“œ์™€ ๋™์ผํ•œ ์ด๋ฆ„ ๋ฐ ์œ ํ˜•์ธ @Rule ํ•„๋“œ( @Rule ์ฃผ์„๋„ ์žˆ์Œ)๊ฐ€ ์žˆ๋‹ค๋Š” ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ 4.12์—์„œ๋Š” ํ•˜์œ„ ํด๋ž˜์Šค Rule์ด ๊ธฐ๋ณธ ํด๋ž˜์Šค ๊ทœ์น™ ๋Œ€์‹  ์‹คํ–‰๋˜์ง€๋งŒ 4.13์—์„œ๋Š” ๋‘˜ ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์„€๋„์šฐ ๋ฉค๋ฒ„์˜ ์ž‘์—… ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ–ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์˜๋„์ ์ธ ๋ณ€ํ™”์ธ์ง€ ๊ธฐ์–ต์ด ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ JUnit 4.13์ด ๊ฐœ์„ ๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ์—์„œ ํŠน์ • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋ฒˆํ˜ธ ์ˆ˜์ •์„ ์œ„ํ•ด ์ˆ˜์ •)

@marcphilipp #1414์—์„œ ๋ณ€๊ฒฝํ•œ ์ด์œ ๋ฅผ ๊ธฐ์–ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ๊ฐ€ ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ ๋™์ผํ•œ ํ•„๋“œ๋ฅผ ์„€๋„์ž‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ JUnit 4.x๋Š” ์ด์ œ ํ•œ๋™์•ˆ ๊ทธ๋Ÿฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” (๋Œ€๊ทœ๋ชจ) ์ฝ”๋“œ ๊ธฐ๋ฐ˜์—๋Š” ํ•˜์œ„ ํด๋ž˜์Šค ํด๋ž˜์Šค @Rule ํ•„๋“œ๊ฐ€ ๊ธฐ๋ณธ ํด๋ž˜์Šค ํ•„๋“œ์˜ ๋™์ž‘์„ ๋Œ€์ฒดํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๋งŽ์€ ์ฝ”๋“œ ์˜ˆ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ฆฌ ์–ด๋ ต์ง€๋Š” ์•Š์ง€๋งŒ(ํ•„๋“œ๋ฅผ ๋ฉ”์„œ๋“œ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ) ํ•ด๋‹น ํ’€์˜ ์ด์ ์ด ๊ธฐ์กด ์‚ฌ์šฉ์ž์˜ ๋น„์šฉ๋ณด๋‹ค ๋” ํฐ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋˜๋Œ๋ฆฌ๊ณ  ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๋™์ž‘์ด์ง€๋งŒ ์ด์ „์„ ๋ณต์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@stefanbirkner WDYT?

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๊ธฐ์กด ํ…Œ์ŠคํŠธ๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๊ฒƒ์„ ์ •๋‹นํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋งˆ์นจ๋‚ด # 1414๋กœ ๋Œ์•„๊ฐ€๋Š” # 1605๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฒ ํƒ€ ๋ฒ„์ „์„ ์ถœ์‹œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. @kcooney ๋ฉฐ์น  ๋‚ด๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด 4.13-beta-2์—์„œ ์ถ”๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜์…จ์Šต๋‹ˆ๊นŒ?

@marcphilipp ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ํŒจ์น˜๋ฅผ ์ ์šฉํ–ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์žฌ์‹คํ–‰์„ ์‚ดํŽด๋ณด๋Š” ๋™์•ˆ ํŒจํ„ด์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ฐœ์„ ๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ์ฃผ์žฅํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ œ์™ธ). ๋‚˜๋Š” ๋‚ด๊ฐ€๋ณด๊ณ ์žˆ๋Š” ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜๊ฑฐ๋‚˜ ๋ถˆ์•ˆ์ •ํ•œ ํ…Œ์ŠคํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ์ฃ„์†กํ•˜์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋˜๋Œ๋ ค์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค!

4.13-beta-3๊ฐ€ ์ถœ์‹œ๋˜์–ด ํ…Œ์ŠคํŠธํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ํ•œ ๋ช…์ด https://github.com/junit-team/junit4/pull/1608 ์—์„œ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ

#1609๋„ ๊ณ ๋ คํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ์— JUnit 4.12์—์„œ JUnit 4.13-beta-3์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œํ•œ ์ด์œ ๋Š” ์ด ์ˆ˜์ • ์‚ฌํ•ญ์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
https://github.com/junit-team/junit4/commit/faa0e334080cd91f05fc1acbc7c39a525e172256

4.13.0 GA์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์œผ์‹ญ๋‹ˆ๊นŒ?

@sullis ๋‚จ์€ ์ฃผ์š” ๋ฌธ์ œ๋Š” ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ–„ํฌ๋ ˆ์ŠคํŠธ(#1608 ์ฐธ์กฐ).

Hamcrest ํŒ€(์ผ๋ช… ๋‚˜)์€ #1608๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 4.13์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ Hamcrest ํŒ€์ด ๋ณ€ํ™”๋ฅผ ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” https://github.com/junit-team/junit4/pull/1608#issuecomment -496492379๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€๋Š” Hamcrest์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์‚ฌ์šฉ ์ค‘๋‹จ์„ ๊ฒ€ํ† ํ•˜๊ณ  "์‚ฌ์šฉ ์ค‘๋‹จ ๋ฉ”์‹œ์ง€"๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์‚ฌ์šฉ์ž์—๊ฒŒ ์กฐ์–ธํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์š”์ผ๋ถ€ํ„ฐ "์ง€์› ์ค‘๋‹จ ๋ฉ”์‹œ์ง€"๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์š”์ผ๋ถ€ํ„ฐ "์ง€์› ์ค‘๋‹จ ๋ฉ”์‹œ์ง€"๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์š”์ผ ๋ฐค๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด Spring Framework 5.2 GA ์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/spring-projects/spring-framework/commit/665e8aa51c11992909134d3ad5eebca6c94aa877.

ํ•˜์ง€๋งŒ... ์••๋ฐ•๊ฐ์€ ์—†์Šต๋‹ˆ๋‹ค. Spring Framework 5.2๊ฐ€ JUnit 4.13์„ ์ง€์›ํ•œ๋‹ค๊ณ  ๊ณต์‹์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค. JUnit 4.13์ด ๋ฆด๋ฆฌ์Šค๋˜๋ฉด JUnit 4.13์€ ์—ฌ์ „ํžˆ โ€‹โ€‹Spring 5.2์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜‰

์•ˆ๋…•ํ•˜์„ธ์š” @sbrannen , ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์˜ค๋Š˜ ๋ฐค์— ๋๋‚ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ ๋ชจ๋“  ๋Œ“๊ธ€์„ ์ฝ๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@stefanbirkner , ๊ฑฑ์ • ๋งˆ์„ธ์š”! ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด "์žˆ์œผ๋ฉด ์ข‹์€" ๊ฒƒ์ด์ง€๋งŒ ํ™•์‹คํžˆ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์—†์Šต๋‹ˆ๋‹ค. JUnit 4.13์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ž ์žฌ์ ์œผ๋กœ Spring Boot 2.2์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ฑ„ํƒ๋  ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜‰

4.13.0 GA์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

#1609์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉด JUnit 4.13์ด ์‹ค์ œ๋ณด๋‹ค ๊ด€๋ จ์„ฑ์ด ๋–จ์–ด์งˆ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. JUnit 4.12 ์‚ฌ์šฉ์ž๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •๊ณผ JUnit 5์˜ ์ผ๋ถ€ ๋ฐฑํฌํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์†์ƒ๋˜์ง€ ์•Š์€ ์ฝ”๋“œ์˜ ์‚ฌ์šฉ ์ค‘๋‹จ์€ ์•„๋‹™๋‹ˆ๋‹ค.

JUnit 4.13 GA์šฉ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ์–ป๊ธฐ ์œ„ํ•ด 4.13-rc-1์„ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

JUnit 4.13-rc-1์€ ์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Maven Central์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

4.13 beta ๋ฐ rc ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ๋Œ€๊ทœ๋ชจ ์กฐ์ง์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

JUnit 4.13-rc1์„ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Jenkins์šฉ Stash Pull Request Builder ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ JUnit 4.13-rc-1์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋Œ€๋กœ ํŒŒ์ผ๋‹น ํ•œ ๋ฒˆ ExpectedException ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์› ์ค‘๋‹จ์ด ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ์—์„œ ์˜ˆ์™ธ ์œ ํ˜•, ๋ฉ”์‹œ์ง€ ๋ฐ ์›์ธ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž„์‹œ ๋ณ€์ˆ˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹์— ๋งž์ถœ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

SpotBugs, sb-contrib ๋ฐ find-sec-bugs๊ฐ€ ํฌํ•จ๋œ ์ƒˆ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋‚˜ ์‚ฌ์šฉ ์ค‘๋‹จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์œ ์ผํ•œ ์ž‘์€ ๊ฒฐํ•จ์€ assertThat ๋Œ€ํ•œ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ Linux์˜ Eclipse 2019-09์—์„œ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ด์ „๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์•„๋ฌด๋„ ํ…Œ์ŠคํŠธ ์ž์ฒด์˜ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

coverage

JUnit 4.13์˜ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด์ œ 3์ฃผ๊ฐ€ ์ง€๋‚ฌ๊ณ  ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋งŒ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/junit-team/junit4/issues/1636

@kcooney @stefanbirkner ์ข€ ๋ด์ฃผ ์‹œ๊ฒ ์–ด์š” ? ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@marcphilipp ์˜ค๋žœ ์ง€์—ฐ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. 1๋…„ ๋„˜๊ฒŒ JUnit์„ ์ž‘์—…ํ•  ์‹œ๊ฐ„์ด ๋งŽ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ๋…ผํ‰ํ–ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

4.13์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด ํ•˜๋‚˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. #1637 ์ฐธ์กฐ

์•ˆ๋…•ํ•˜์„ธ์š”, JUnit 4.13์˜ ์ƒํƒœ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

1637์ด ํ•ด๊ฒฐ๋˜์—ˆ๊ณ  ๋‹ค๋ฅธ RC๋ฅผ ์ถœ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

JUnit 4.13-rc-2๋Š” ์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Maven Central์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

JUnit 4.13-rc2๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. LGTM

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ JUnit 4.13-rc-2๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์˜ˆ์™ธ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

JUnit 4.13 GA์šฉ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@kcooney #1637์ด ํ•ด๊ฒฐ

๋ชจ๋“  ์—…๋ฐ์ดํŠธ?

JUnit 4.13 GA์šฉ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋Šฆ์€ ๋‹ต๋ณ€ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค; ์ง€๋‚œ ๋ช‡ ์ฃผ ๋™์•ˆ ์ผ์ด ๋ฐ”๋นด์Šต๋‹ˆ๋‹ค.

์ตœ์‹  JUnit ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฝ”๋“œ์— ํ†ตํ•ฉํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
์ €์žฅ์†Œ. ๋‚˜๋Š” ์šฐ๋ฆฌ ์ธก์˜ ํ–‰๋™์„ ๋‹ค๋ฃจ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
ํด๋ž˜์Šค๊ฐ€ FixMethodOrder๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฑฐ์˜ ์ •ํ™•ํ•˜๊ฒŒ ๋ณด์ผ ๋•Œ ๋ฌด์ž‘์œ„ํ™”
ํ…Œ์ŠคํŠธ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. JUnit์„ ์ฐจ๋‹จํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ™•์ธ ์ž‘์—…์„ ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค.

q: JUnit 4.13 GA์šฉ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

JUnit 4.13์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๐ŸŽŠ
https://twitter.com/junitteam/status/1212403812192964608

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰