以下のMoney.javaの★★部分のテストプログラムをMoneyTestクラスのtestIsEqualsメソッドに追加したいのですが、うまくできません。。
if (obj == null) {
return false;
}
objがnullならfalseを返す部分なので、引数がnullのisEqualsメソッドを実行させ、falseが返ってくることを確認できればいいのですが、どのように記載すれば良いでしょうか。
MoneyTest.java
java
1package practice; 2 3import static org.junit.Assert.*; 4 5import org.junit.Test; 6 7public class MoneyTest { 8 9 @Test(expected = IllegalArgumentException.class) 10 public void testMoney() { 11 12 int amount1 = 1; 13 int amount2 = 0; 14 int amount3 = -1; 15 16 Money result1 = new Money(amount1); 17 assertEquals(amount1, result1.amount); 18 19 Money result2 = new Money(amount2); 20 assertEquals(amount2, result2.amount); 21 new Money(amount3); 22 } 23 24 @Test(expected = NullPointerException.class) 25 public void testAdd() { 26 27 Money self1 = new Money(1); 28 Money m1 = new Money(2); 29 30 Money self2 = new Money(1); 31 Money m2 = null; 32 33 Money result1 = self1.add(m1); 34 assertEquals(3, result1.amount); 35 36 self2.add(m2); 37 } 38 39 @Test 40 public void testIsEquals() { 41 42 Money self1 = new Money(1); 43 Money obj1 = new Money(1); 44 45 Money self2 = new Money(1); 46 Money obj2 = new Money(2); 47 48 Money self4 = new Money(1); 49 String obj4 = "unit08"; 50 51 boolean result1 = self1.isEquals(obj1); 52 assertTrue(result1); 53 54 boolean result2 = self2.isEquals(obj2); 55 assertFalse(result2); 56 57 boolean result4 = self4.isEquals(obj4); 58 assertFalse(result4); 59 } 60 61}
Money.java
java
1package practice; 2 3/** 4 * 金額を表すクラス 5 */ 6public class Money { 7 8 /** 金額 */ 9 int amount; 10 11 /** 12 * コンストラクター 13 * 14 * @param amount 金額 15 * @throw IllegalArgumentException 16 * amountが負の場合にスローします。 17 */ 18 public Money(int amount) { 19 20 if (amount < 0) { 21 throw new IllegalArgumentException(); 22 } 23 24 this.amount = amount; 25 } 26 27 /** 28 * 金額を足し算します。 29 * 30 * @param m 金額 31 * @return 加算金額 32 */ 33 public Money add(Money m) { 34 return new Money(amount + m.amount); 35 } 36 37 /** 38 * 同値を検査します。 39 * amountの値が等しい時に限り、同値と判断します。 40 * 41 * @param obj 比較対象オブジェクト 42 * @return 等しければ真 43 */ 44 public boolean isEquals(Object obj) { 45 46//★★ 47 if (obj == null) { 48 return false; 49 } 50//★★ 51 52 53 if (!(obj instanceof Money)) { 54 return false; 55 } 56 57 Money m = (Money) obj; 58 return amount == m.amount; 59 } 60} 61
回答1件
あなたの回答
tips
プレビュー