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ę!

questionAnswers(3)

yourAnswerToTheQuestion