Я пишу тест JUnit, а также использую Mockito, и я хочу вызвать метод, который, в свою очередь, вызывает второй метод несколько раз.Я не хочу, чтобы этот второй метод вызывался во время моего модульного теста, но я хочу знать, каковы были бы его аргументы.Мой тестируемый код выглядит примерно так:
public class MyClass {
public void myMethod() {
int a = [do some logic]
int b = [do some logic];
doSomething(a, b);
a = [do some logic];
b = [do some logic];
doSomething(a, b);
}
public void doSomething(int a, int b) {
// code that I do not want to be executed during a unit test
}
}
А теперь юнит-тест:
@Test
public void test() {
MyClass myClass = new MyClass();
myClass.myMethod();
verify(myClass).doSomething(17, 33);
verify(myClass).doSomething(9, 18);
}
Я новичок в Mockito и не знаю, возможно ли либоA) предотвратить выполнение doSomething () и B) проверить значения аргументов a & b.Я готов принять ответы типа «Мокито не может вам здесь помочь» или «это не то, что технически возможно».Если нет способа издеваться над подобными вещами, я мог бы рассмотреть возможность реорганизации этих блоков [сделать некоторую логику] в методы, которые я могу тестировать напрямую, но мой код более сложный, чем в этом простом примере, и мне не разрешается публиковать код в Интернете.