我有一个返回数组Sighting []的方法。在我的单元测试中,索引[0]应该有一个元素(element1)。
我的问题是,我如何建立我的陈述以反映这一点?我需要断言我的getMostOfSpecies方法返回的数组在第一个索引值处包含element1。
我的(失败)测试看起来像这样
@Test
public void getMostOfSpeciesTest()
{
try {
birdList1.remember(sighting5);
birdList1.remember(sighting6);
birdList1.remember(sighting7);
birdList1.remember(sighting8);
assertEquals(birdList1.getMostOfSpecies("SOBI"), Sighting[???what to put here???]);
}
catch (Exception e) {
fail("Failed" + e.getMessage());
}
}
答案 0 :(得分:2)
你试过Arrays.equals()
[1]吗?确保你也覆盖了Sighting类的equals()方法。
assertTrue( Arrays.equals(birdList1.getMostOfSpecies("SOBI"), yourSightingArray);
[1] https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
编辑:
如果您需要检查数组是否包含一个特定对象,您可能会对Arrays.binarySearch()
[2]或Arrays.asList()
中的List with contains() - 方法感兴趣。所以你的断言语应该看起来像
assertTrue( Arrays.binarySearch(birdList1.getMostOfSpecies("SOBI"), theElementYouExpect) >= 0);