์ด ๋ฌธ์ ๋ JUnit 4.13์ ๋ฆด๋ฆฌ์คํ๋ ๋ฐ ํ์ํ ์์ ์ ์ถ์ ํฉ๋๋ค.
@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์์ ๋
ธ๋์์ผ๋ก ํ์๋๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋๋ ์ด์ ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์๋ฌด๋ ํ
์คํธ ์์ฒด์ ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
JUnit 4.13์ ์ํ๋ ๋ฌด์์ ๋๊น?
์ด์ 3์ฃผ๊ฐ ์ง๋ฌ๊ณ ํ ๊ฐ์ง ๋ฌธ์ ๋ง ๋ณด๊ณ ๋์์ต๋๋ค: https://github.com/junit-team/junit4/issues/1636
@kcooney @stefanbirkner ์ข ๋ด์ฃผ ์๊ฒ ์ด์ ? ๋๋ ์ฐ๋ฆฌ๊ฐ ์์ ๋ฌธ์ ๋ฅผ ๋ซ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@marcphilipp ์ค๋ ์ง์ฐ์ ๋ํด ์ฃ์กํฉ๋๋ค. 1๋ ๋๊ฒ JUnit์ ์์ ํ ์๊ฐ์ด ๋ง์ง ์์์ต๋๋ค.
๋๋ ๊ทธ ๋ฒ๊ทธ์ ๋ํด ๋ ผํํ๋ค. ์ด๋ป๊ฒ ๊ณ ์น ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
4.13์ ๋ํ ๊ธฐ๋ฅ ์์ฒญ์ด ํ๋ ์์์ต๋๋ค. #1637 ์ฐธ์กฐ
์๋ ํ์ธ์, JUnit 4.13์ ์ํ๋ ์ด๋ป์ต๋๊น?
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
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
4.13-beta-1์ด ์ค๋ ์ถ์๋์์ผ๋ฉฐ ์ด์ Maven Central์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.