Easymock receiveLastCall

Я использую Easymock с junit для написания своих модульных тестов. У меня есть сомнения в этом отношении, и я не смог найти очень ясного объяснения по этому поводу.
Как вы тестируете пустые методы?
Так как они ничего не возвращают, так что-то вроде

Easymock.expect(myMockObject.func(easymock.isa(String.class))).andReturn("NOTHING TO RETURN HERE");

выше не сработает, так как мне нечего вернуть.
Итак, как мне установить мои ожидания и как проверить метод void?
Я узнал, что что-то вроде easymock.expectLastCall() подходит, но я не уверен, что он делает и зачем он нам нужен. Ясное объяснение будет высоко ценится.

1 ответ

Решение

Во-первых, с easymock вы не тестируете метод, который хотите протестировать, вы высмеиваете методы, которые он вызывает. Например:

public void doSomething(){
  i = otherObject.foo();
  otherObject.bar();
}

Метод doSomething()это метод, который вы хотели проверить. i переменная-член вашего класса, скажем, целое число. Звонки otherObject.foo() а также otherObject.bar() являются вызовами методов для другого объекта, который может быть смоделирован (возможно, их трудно настроить, и вы просто хотите их смоделировать...). Теперь предположим, что bar() является пустым методом, то для otherObject.foo() вы могли бы установить нормальное ожидание, но для bar() тебе понадобится expectLastCall(),

Когда вы тестируете пустой метод (doSomething()), вы хотите проверить его побочные эффекты... Это изменило коллекцию? Это создало новый Объект? Или, в этом примере, значение i менять?

Другие вопросы по тегам