オブジェクトのディープ コピーを実行しようとしています。このコピーでは、元のオブジェクトを変更せずに新しいオブジェクトが変更されます。機能をテストするために、私はJUnitを使用して機能が機能することを確認しています。
現在のテストは、基本的にゲーム「マスエフェクト3」をコピーし、現在の声優を変更することです.
ゲームクラス
@Override
protected Object clone(){
Game obj = new Game(getTitle(), getLeadVoiceActor(), getRating());
return obj;
}
JUnit テスト
@Before
public void setUp() {
p1 = new Person("Mark", "Meer");
g1 = new Game("Mass Effect 3", p1, 5);
}
@Test
public void testClone() throws CloneNotSupportedException {
//This works
Game g2 = (Game)g1.clone();
assertEquals(g2, g1);
assertNotSame(g2, g1);
//This doesn't even though the lead voice actor is now different
p1 = g1.getLeadVoiceActor();
p1.setFirstName("Jennifer");
p1.setLastName("Hale");
assertFalse(g2.equals(g1));
assertEquals("Jennifer Hale", g1.getLeadVoiceActor().toString());
assertEquals("Mark Meer", g2.getLeadVoiceActor().toString());
}
junit.framework.assertionfailederror でテストが失敗しています。