junit, как бы я утверждал, что мой метод возвращает определенный массив

У меня есть метод, который возвращает массив Sighting[]. В моем модульном тесте должен быть один элемент (element1) с индексом [0].

Мой вопрос в том, как мне построить свое заявление, чтобы отразить это? Мне нужно утверждать, что массив, возвращаемый моим методом 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());
    }
}

person user3738926    schedule 02.12.2014    source источник


Ответы (1)


Вы пробовали Arrays.equals() [1]? Убедитесь, что вы также переопределили метод equals() вашего класса Sighting.

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 contains(). Таким образом, ваше утверждение-утверждение должно выглядеть так:

assertTrue( Arrays.binarySearch(birdList1.getMostOfSpecies("SOBI"), theElementYouExpect) >= 0);

[2] https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#binarySearch(java.lang.Object[],%20java.lang.Object )

person André Diermann    schedule 02.12.2014
comment
и д, мой метод возвращает массив. Мне нужно проверить, содержит ли он определенный элемент. - person user3738926; 02.12.2014
comment
Извините, заголовок вашего вопроса вводит в заблуждение, возвращает определенный массив... но вы можете использовать Arrays.binarySearch в вашем случае, я думаю, это то, что вы ищете. Я отредактирую свой ответ. - person André Diermann; 02.12.2014