Я использую Easymock с junit для написания модульных тестов. У меня есть сомнения в этом отношении, и я не мог найти очень ясного объяснения относительно этого.
Как вы тестируете недействительные методы?
Поскольку они ничего не возвращают, так что-то вроде:Easymock expectLastCall
Easymock.expect(myMockObject.func(easymock.isa(String.class))).andReturn("NOTHING TO RETURN HERE");
выше, не будет работать, как у меня нет ничего, чтобы вернуться.
Итак, как я могу настроить свое ожидание и как проверить метод void?
Я узнал, что что-то вроде easymock.expectLastCall() будет вписываться, но я не уверен, что он делает и зачем он нам нужен. Ясное разъяснение было бы высоко оценено.
Спасибо за объяснение. Пожалуйста, объясните это: когда мы настроим обычное ожидание, мы укажем, какой метод при вызове должен вернуть что-то вроде easymock.expect (obj.func()) иReturn (.....), но с expectLastCall, вы не указывать метод, который насмехается? Тогда как он узнает, какой метод вызывает фальсификацию? Я имею в виду, что если у нас есть серия вызовов из 3-х пустотных методов. Как использовать expectLastCall в таком сценарии? –
@KumarMrinal you вызовите метод и вызов easymock.expectLastCall(). Используя данный пример, сначала создадим настройку для foo, затем для bar: easymock.expect (otherObject.foo()) иReturn (.....); otherObject.bar(); EasyMock.expectLastCall(); –
Таким образом, если метод тестирования является чем-то вроде: общественного ничтожной DoSomething() { я = otherObject.foo(); otherObject.bar(); otherObject.set(); otherObject.put(); } Затем, чтобы протестировать этот сценарий, нам нужно было бы написать что-то вроде: easymock.expect (otherObject.foo()) .Return (.....); // для foo otherObject.bar(); EasyMock.expectLastCall(); // для бара otherObject.set(); EasyMock.expectLastCall(); // для набора otherObject.put(); EasyMock.expectLastCall(); // for put Я имею в виду один expectLastCall для каждого предшествующего метода void? –