assertTrue(falseMethod())λ λ€μμ μ 곡ν©λλ€.
junit.framework.AssertionFailedError
assertEquals(true, falseMethod())λ λ€μμ μ 곡ν©λλ€.
junit.framework.AssertionFailedError: μμ:
assertTrue(boolean)/assertFalse(boolean)μ λν κΈ°λ³Έ μ€λ₯ λ©μμ§λ₯Ό μΆκ°ν μ μμ΅λκΉ?
κ°μ₯ μ¬μ΄ μΌμ assertEquals(true, condition) λ±μ νΈμΆνλ κ²μ λλ€.
μ΄λ¬ν κΈ°λ³Έ μ€λ₯ λ©μμ§κ° λμμ΄ λ κΉμ? μ΄μ¨λ 무μμ΄ μλͺ»λμλμ§ μμλ΄λ €λ©΄ ν μ€νΈ μ½λλ₯Ό μ΄ν΄λ΄μΌ νμ§ μμκΉμ?
BTW μ¬μ©νμμμ€ org.junit.Assert
λμ junit.framework.Assert
.
μ΄ ν μ€νΈλ₯Ό μμ±νλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€.
μ¬μ©μ μ¬μ©μ = ...;
assertTrue(user.isHappy());
assertFalse(user.isSad());
ν μ€νΈλ λ©μμ§ μμ΄ AssertionErrorμ ν¨κ» μ€ν¨ν©λλ€. μ½λλ₯Ό κ²μ¬νκ³ μ΄λ€ μ£Όμ₯μ΄ μ€ν¨ν μ€ λ²νΈλ₯Ό κ²μ¬νμ§ μκ³ λ μ μ μλ λ°©λ²μ΄ μμ΅λλ€.
λ λ§μ λ°μ΄ν°κ° λμ μ΄μ λ 무μμ λκΉ?
λ λ§μ λ°μ΄ν°κ° λμ κ²μ μλλλ€. μ΄ κ²½μ°μλ λ λ§μ λ°μ΄ν°λ§ λ³Ό μ μμ΅λλ€.
λ΄κ° μ΄ κΈ°λ₯ μμ²μ λ°λνλ κ²μ μλμ§λ§, Hamcrest λλ Truthμ κ°μ΄ μ€λλ μ£Όμ₯μ 곡μννλ λ λμ λ°©λ²μ΄ μλ€κ³ μκ°ν©λλ€.
κ·ΈλΌμλ λΆκ΅¬νκ³ λκ΅°κ°κ° μ΄ λ¬Έμ μ λν pull μμ²μ μ μΆνλ©΄ μλ§λ λ³ν©ν κ²μ΄λΌκ³ μκ°ν©λλ€... ;-)
@junit-team/junit-committers μ΄μκ° μμ΅λκΉ?
λλ νμ€ν κ·Έκ²μ λμνμ§ μμ΅λλ€ :-)
https://github.com/google/truth/commits?author=kluever
νμ§λ§ μ΄ λλ¬Έμ assertTrue/assertFalse μ¬μ©μ 꺼리λ Google μ§μμ΄ μμ΅λλ€. νμ§λ§ νμ€ν, μ΄μ λν ν 리νμ€νΈλ₯Ό 보λ΄κ² μ΅λλ€.
:μλ€:
assertTrue
λ° assertFalse
λ©μμ§λ₯Ό μ 곡ν μ μμ΅λλ€.
assertTrue("The user is not happy, but she should.", user.isHappy());
assertFalse("The user is sad, but she should not.", user.isSad());
μ΄ λ©μμ§λ μ€ν μΆμ μ νμλ©λλ€.
java.lang.AssertionError: The user is not happy, but she should.
java.lang.AssertionError: The user is sad, but she should not.
@stefanbirkner λ€, μ λ μ μκ³ μμ΅λλ€. νμ§λ§ κΈ°λ³Έ κ²½μ°μλ ν©λ¦¬μ μΈ μ€λ₯ λ©μμ§λ₯Ό νμνμ§ μλ μ΄μ λ 무μμ λκΉ?
μ°λ¦¬λ μ΄λ―Έ assertEquals(expected, real)μ λν΄ μ΄ μμ
μ μννκ³ μμ΅λλ€. μ΄λ κ² νλ©΄ λ€μκ³Ό κ°μ΄ μμ±ν νμκ° μμ΅λλ€.
assertEquals("μμ " + μμ +" νμ§λ§ " + μ€μ , μμ, μ€μ );
assertTrue()μ μ€ν¨μ λν λ λμ λ©μμ§κ° μ μ©ν μ μλ€λ λ° λμνμ§λ§ "expected <true> but was <false>"
κ° λ λμμ§ νμ€νμ§ μμ΅λλ€.
@dsaff λ μμ¬μ λ§₯λ½μ΄ μλ€κ³ μκ°ν©λλ€.
λ¬Έμ μ λ²μλ₯Ό λͺ
νν νκΈ° μν΄ "μμ
μλ λμμΈ μκ°μ μ€λ₯ λ©μμ§λ₯Ό ꡬμ±νλ κ²μ΄ λΉλ©΄ν λ¬Έμ μμ μΈμ§μ μ£Όμλ₯Ό μ°λ§νκ² νλ κ²μ΄λΌλ κ²μ΄μμ΅λλ€. assertTrue(list.isEmpty())λΌκ³ νλ©΄ boolean κ°μ λΉκ΅ ν μ€νΈκ° μλλΌ listμ μνλ₯Ό μκ°νλ κ²μ λλ€. λ°λΌμ JUnitμ λ§ν κ²λ μκ³ μ무 λ§λ νμ§ μμμΌ ν©λλ€.
κ·Έκ²μ΄ Chestertonμ μΈν리 λ€μ μλ μ΄μ μ λλ€.
μμμ μΈκΈν μ΄ κ²½μ°μλ μ¬μ ν ν₯λ―Έλ‘μ΄ λ°μ΄ν°κ° μμ΅λλ€.
assertTrue(user.isHappy());
assertFalse(user.isSad());
assertEqualsμ λ λ§μ μ 보λ₯Ό μ 곡νλ μ€λ₯ λ©μμ§κ° μλ μ΄μ λ λ λ§μ μ 보λ₯Ό μ 곡νκΈ° λλ¬Έμ λλ€. μ¦, μ€μ κ°κ³Ό μμ κ°μ΄ _are_μ΄λ©° λ°νμκΉμ§ μ’ μ’ μλ €μ§μ§ μκΈ° λλ¬Έμ λλ€.
JUnitμ λ§μ΄ μ¬μ©λλ λΌμ΄λΈλ¬λ¦¬μ΄λ©°, μ΄μ κ°μ μ¬μν λ³κ²½μ‘°μ°¨λ ν΅μ¬ λ©μλμ μ μ©ν λ JUnitμ νμ¬ λμμ μμ‘΄νλ λκ΅°κ°μ ν μ€νΈλ₯Ό μ΄λκ°μμ μ€λ¨μν€λ κ²½ν₯μ΄ μμ΅λλ€. λλ μλ‘μ΄ νλμ΄ μ μ©ν λ°©μμΌλ‘ λ€λ₯΄λ€λ©΄ κ·Έλ κ² νλ κ²μ΄ μ’μ§λ§ μ§κΈκΉμ§μ λ Όκ±°λ‘λ μ μ©μ±μ λν΄ νμ νμ§ λͺ»νλ€.
νμ¬ μνμ κ²°κ³Όλ ν©λ¦¬μ μ΄κ³ μ§λ₯ κ°λ°μμ μλ νμ μμ±μ κ°μΈ μ°μ΅μν΄μΌνλ€λ κ²μ
λλ€ assertEquals(true, expression())
λμ assertTrue(expression())
. κ²λ€κ°, λ¬Όλ‘ λ¦¬λ·°μ΄λ€μκ² λκ°μ΄ νλΌκ³ μꡬνκ³ μ€νμΌ κ°μ΄λμ λ£λ λ±μ
λλ€. μ°λ¦¬κ° μ½λ λ¨μμ±μ μ’μνκΈ° λλ¬Έμ μ¬νμ§λ§ κ·Έ μ«μκ° λ§€μ° λλ€κ³ μ£Όμ₯ν μλ μλ€κ³ μκ°ν©λλ€.
λλ λν Davidμ μμ μ§λ¬Έ(λ§μ§λ§ μ½λ©νΈ)μ λν λλ΅μ΄ λΆλͺ
ν "μ"λΌκ³ μκ°ν©λλ€. μ€μ μ λ³΄κ° μ 곡λλ μ μΌν κ²½μ°λ ν
μ€νΈ λ©μλμ μ νν νλμ λ©μμ§ μλ assertTrue
μ μ νν νλμ λ©μμ§ μλ assertFalse
μ
λλ€. κ·Έκ²μ λ§€μ° μΌλ°μ μ΄μ§ μμ΅λλ€. κ·Έλ¦¬κ³ _κ·Έλ¦¬κ³ _ μ€ν μΆμ μ΄ μκ³ , _κ·Έλ¦¬κ³ _ κ·Έλ€μ΄ λ©μμ§λ₯Ό μ 곡νμ μλ μμ΅λλ€... κ·Έκ²μ λ§μ΄ μΆκ°λμ§ μμ΅λλ€. λλ κ·Έκ²μ΄ λ무 _맨λ°λ‘ λνλλ λ©μμ§ μλ μμΈμ κ΄λ ¨μ΄ μλ€κ³ μκ°ν©λλ€._
@junit-team/junit-committers μ΄ λ¬Έμ μ λν΄ μ΄λ»κ² ν΄μΌ ν©λκΉ?
κΈμ, λλ κ·Έκ²μ λ«λ λ° μ°¬μ±ν©λλ€. μΌλΉ, 컀νΈ, λ λ€ λ³νΈμΈμ μ μν λ§νΌ μ΄μ±μ μ λκΉ?
λλ κ·Έκ²μ λ«λ κ²μ μ°¬μ±ν©λλ€.
μ λ μ΄ λ¬Έμ μ μ°¬μ±ν©λλ€. λ€λ₯Έ νλ μμν¬λ μ€μ κ°μΉ κΈ°λ₯ νμλ₯Ό μ§μνλ©° νμμ μ λλ€. JUnitμ΄ κ·Έλ κ² μ΅ν΅μ±μ΄ μλ€λ κ²μ΄ λ―ΏκΈ°μ§ μμμ΅λλ€.
assertTrue λ° assertFalseμ λν΄ λ³΄λ€ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νλ κ²μ΄ μ€μνκΈ° λλ¬Έμ μ΄ λ¬Έμ μ μ°¬μ±ν©λλ€. μ λλ£μ μ λ μ΄ λλ¬Έμ assertTrue/assertFalse μ¬μ©μ 꺼립λλ€.
@ChaminW assertTrue("Some more specific message.", value);
λ₯Ό μ¬μ©νλ©΄ λ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό λ³Ό μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
assertTrue
λ°assertFalse
λ©μμ§λ₯Ό μ 곡ν μ μμ΅λλ€.μ΄ λ©μμ§λ μ€ν μΆμ μ νμλ©λλ€.