Я хочу проверить некоторые методы, которые вызывают другие в том же классе. Это в основном те же методы, но с меньшими аргументами, поскольку в базе данных есть значения по умолчанию. Я показываю на этомКак проверить, был ли метод вызван из другого с тем же классом mockito
public class A{
Integer quantity;
Integer price;
A(Integer q, Integer v){
this quantity = q;
this.price = p;
}
public Float getPriceForOne(){
return price/quantity;
}
public Float getPrice(int quantity){
return getPriceForOne()*quantity;
}
}
Так я хочу испытание, если был вызван метод getPriceForOne() при вызове метода getPrice (INT). В основном вызывают обычный метод getPrice (int) и mock getPriceForOne.
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
....
public class MyTests {
A mockedA = createMockA();
@Test
public void getPriceTest(){
A a = new A(3,15);
... test logic of method without mock ...
mockedA.getPrice(2);
verify(mockedA, times(1)).getPriceForOne();
}
}
У меня есть гораздо более сложный файл, который является утилитой для других и должен быть всем в одном файле.
То, что вы хотите частичное насмешливый, но не рекомендуется, Mockito фактически отвратить это при исключении некоторых конкретных случаев. Если это класс утилиты, имеет смысл полностью протестировать каждый метод. Если это не так, т. Е. Требует сложной обработки, вы можете захотеть создать свой код с композицией. – Brice