Нужна помощь с написанием теста

Я пытаюсь написать тест для этого класса, который называется Receiver:

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));        
        }});
    }

Примечание : получатель - это экземпляр класса Receiver (настоящий, а не фиктивный), процессор - это экземпляр класса Processor (настоящий, а не фиктивный), который обрабатывает человека (фиктивный объект класса People). GetId - это метод String, а не int, который не является ошибкой.

  

Тест не пройден: неожиданный вызов   person.getId ()

Я использую jMock, любая помощь будет признательна. Как я понял, когда я вызываю этот метод get, чтобы правильно его выполнить, мне нужно смоделировать person.getId(), и некоторое время я крутился по кругу, и теперь любая помощь будет признательна.

7 голосов | спросил London 26 Maypm10 2010, 15:35:36

2 ответа


0

Если я правильно понимаю, вы должны переместить строку receive.get (person); после контекста context.checking - потому что это выполнение вашего теста, а не установка ожидания. Так что попробуй:

@Test
public void testReceivePerson(){
    context.checking(new Expectations() {{          
        atLeast(1).of(person).getId();
        will(returnValue(String.class));        
    }});
    receiver.get(person);
}
ответил Grzenio 26 Maypm10 2010, 16:07:39
0

Кроме того, вы должны использовать allow () вместо atLeast (1), так как здесь вы заглушаете объект person Наконец, если Person является просто типом значения, может быть, лучше просто использовать класс.

ответил Steve Freeman 4 J0000006Europe/Moscow 2010, 00:05:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132