Я создаю тесты для разных методов, но все эти методы очень похожи - что-то добавляется в Day.
Я создал объект Day для тестирования и высмеял некоторые вещи, такие как База данных.Но у меня есть проблемы с настройкой этого должным образом.
Например: один метод, который возвращает Day для использования этого дня в моем методе addSomething()
, выглядит следующим образом:
Item item = dbService.get(tableName, Collections.singletonList(primaryKey));
String measurementsJSON = item.getJSON("measurements");
Я смоделировал базу данных и Item, и я хотел настроить 'до того, как я это сделал:
@Before
public void setUp() throws Exception {
activitiesService = new ActivitiesService(databaseControllerMock);
when(eq(item).getJSON(anyString())).thenReturn(anyString());
}
Но в этом случае я получаю сообщение об ошибке:
java.lang.NullPointerException
at service.activity.service.ActivitiesServiceTest.setUp(ActivitiesServiceTest.java:45) //this line with "when..."
И другие ошибки:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: здесь обнаружен неуместный сопоставитель аргументов: -> at service.activity.service.ActivitiesServiceTest.setUp (ActivitiesServiceTest.java:45)
Нельзя использовать сопоставители аргументов вне проверки или заглушки,Примеры правильного использования сопоставителей аргументов: when (mock.get (anyInt ())). ThenReturn (null);doThrow (new RuntimeException ()). when (mock) .someVoidMethod (anyObject ());verify (mock) .someMethod (содержит ("foo"))
Кроме того, эта ошибка может отображаться, поскольку вы используете сопоставления аргументов с методами, которые не могут быть смоделированы.Следующие методы не могут быть заданы / проверены: final / private / equals () / hashCode ().