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
менять?