Mockito: Как легко заблокировать метод, не дразня все параметры

У меня есть метод, который я хотел бы заблокировать, но он имеет много параметров. Как я могу постараться не дразнить все параметры, но все еще заблокировать метод.

Исключая:

//Method to stub
public void myMethod(Bar bar, Foo foo, FooBar fooBar, BarFoo barFoo, .....endless list of parameters..);
22
задан Michael Bavin 26 February 2010 в 10:13
поделиться

2 ответа

Я не совсем понимаю, с какой проблемой вы столкнулись при использовании Mockito. Предполагая, что вы создаете имитацию интерфейса, содержащего ваш метод myMethod () , вы можете проверить только параметры интересующего вас метода. Например (предполагая, что интерфейс называется MyInterface и с использованием JUnit 4):

@Test
public void test() {
    MyInterface myInterface = mock(MyInterface.class);
    FooBar expectedFooBar = new FooBar();        

    // other testing stuff

    verify(myInterface).myMethod(any(), any(), eq(expectedFooBar), any(), ...);
}

Вам нужно будет выполнить статический импорт методов Mockito, чтобы это работало. Сопоставителю any () не важно, какое значение было передано при проверке.

Вы не можете избежать передачи чего-либо для каждого аргумента в вашем методе (даже если это только NULL).

27
ответ дан 29 November 2019 в 04:46
поделиться

Создайте класс-обертку, который вызывает настоящий метод и заполняет все аргументы, кроме тех, которые вы предоставили (так называемое "делегирование").

И при следующей возможности напишите ошибку в проекте с просьбой перенести параметры в объект config.

3
ответ дан 29 November 2019 в 04:46
поделиться
Другие вопросы по тегам:

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