Класс EasyMock 3.0 Mocked должен выдавать исключение, если вызывается какой-либо метод - PullRequest
0 голосов
/ 06 марта 2012

Я хотел бы посмеяться над классом, чтобы он вызывал исключение, если вызывается какой-либо метод. Причина, по которой я хочу сделать это, состоит в том, что я не хочу исключения NullpointerException в своих тестах, я бы предпочел высмеивать каждый объект, объявленный как переменная экземпляра, которая является нулевой с исключением-материалом, так что если метод на нем мне звонят, я получаю надлежащее исключение и сразу вижу, что не так. Предоставляет ли EasyMock 3.0 такую ​​вещь или мне нужно сделать это другим способом?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Вы можете ожидать исключение при его вызове, учитывая тот же пример списка

List list = EasyMock.createMock(List.class);
EasyMock.expect(list.size()).andThrow(new OurOwnException()).anyTimes();
EasyMock.replay(list);

Это всегда будет вызывать ваше пользовательское исключение при каждом вызове метода size ().Ожидаете ли вы такого поведения?

0 голосов
/ 06 марта 2012

Разве это не поведение EasyMock по умолчанию? Любые непредвиденные вызовы на макетном объекте приводят к исключению, когда вы вызываете EasyMock.verify(mocks). Пожалуйста, ознакомьтесь с документацией EasyMock - раздел «Nice Mocks» объясняет это: http://easymock.org/EasyMock3_0_Documentation.html

Следующий тест не пройден для меня с AssertionError, это должно быть то, что вы ищете:

@Test
public void testFoo() {
    List list = EasyMock.createMock(List.class);

    EasyMock.replay(list);

    list.size();

    EasyMock.verify(list);
}
...