Mockito: kiedy wywoływana jest metoda A.a, wykonaj B.b
Używam Mockito do testów JUnit. Jest więc dana klasa A używana z kodu, który chcę przetestować:
class A{
public A(){}
public final String a(String x){
return "A.a: " + x;
}
}
i chcę zastąpić wywołanie metody A.a innym wywołaniem metody z tymi samymi argumentami i tym samym typem wartości zwracanej. Jak widać, nie można zastąpić metody a rozszerzając klasę, ponieważ jest ona ostateczna. Więc mam teraz inną klasę B z metodą B.b:
class B{
public B(){}
public String b(String x){
return "B.b: " + x;
}
}
Teraz chcę się upewnić, że za każdym razem, gdy z kodu zostanie wywołane A.a, zamiast tego używana jest wartość zwracana B.b. Czy istnieje możliwość osiągnięcia tego za pomocą Mockito (coś takiegoMockito.when(A.a(x)).thenReturn(B.b(x));
) ale z tym samym parametrem x, nie znając wartości x?
Każda pomoc byłaby doceniana, z góry dziękuję!