Я пытаюсь записать тест для этого класса его названный Получатель:
public void get(People person) {
if(null != person) {
LOG.info("Person with ID " + person.getId() + " received");
processor.process(person);
}else{
LOG.info("Person not received abort!");
}
}
Вот тест:
@Test
public void testReceivePerson(){
context.checking(new Expectations() {{
receiver.get(person);
atLeast(1).of(person).getId();
will(returnValue(String.class));
}});
}
Примечание: получатель является экземпляром класса Получателя (реальный не ложный), процессор является экземпляром класса Процессора (реальный не ложный), который обрабатывает человека (фиктивный объект Людей класс). GetId является Строка не международный метод, который не является ошибкой.
Тестовые сбои: неожиданный вызов person.getId ()
Я использую jMock, любая справка ценилась бы. Поскольку я понял, когда я называю это get
метод для выполнения его правильно я должен дразнить person.getId()
, и я стрелял из укрытия вокруг в кругах некоторое время теперь, любая справка ценилась бы.
Если я правильно понимаю, вы должны переместить строку receiver.get(person); после области действия context.checking - потому что это выполнение вашего теста, а не установка ожиданий. Так что попробуйте вот это:
@Test
public void testReceivePerson(){
context.checking(new Expectations() {{
atLeast(1).of(person).getId();
will(returnValue(String.class));
}});
receiver.get(person);
}
Кроме того, вы должны использовать allow () вместо atLeast (1), поскольку здесь вы заглушаете объект person. Наконец, если Person - это просто тип значения, может быть лучше просто использовать класс.