Consider the following sample MockUp
of a class Foo
that intercepts Bar
in the constructor and then implements toString()
in terms of Bar
;
public class FooStub extends MockUp<Foo> {
private Bar bar;
@Mock
public void $init(Bar bar) {
this.bar = bar;
}
@Mock
public String toString() {
return bar.toString();
}
}
If Foo
happens to override toString()
all works fine. Otherwise though, you get a IllegalArgumentException
: "Matching real methods not found for the following mocks". I understand from here that JMockit does not look in base classes and therefore cannot find a toString()
method to mock.
Assuming I can't modify the Foo class (in reality I can, but just for the sake of argument), is there any way to mock toString()
just for this Foo
class?
To be clear, I want to mock all instances of this class, not just one instance (that has easy solutions that do no require a MockUp
).
Aucun commentaire:
Enregistrer un commentaire