Static methods are painful in Java when mocking but JMockit makes some impossible testing possible, though not easy:
public final class MockitEg {
public static final int SHOE_SIZE = 13;
public static int shoeSize() {
System.out.println("MockitEg.shoeSize");
return SHOE_SIZE;
}
private MockitEg() {
}
}
public class MockitTest {
private static final int MOCK_SHOE_SIZE = SHOE_SIZE + 29;
@Test
public void shouldMockStaticMethod() {
new NonStrictExpectations() {
final MockitEg mock = null;
{
MockitEg.shoeSize();
result = new MockitEgDelegate();
}
};
assertThat(MockitEg.shoeSize(),
is(equalTo(MOCK_SHOE_SIZE)));
}
private static final class MockitEgDelegate
implements Delegate {
public static int shoeSize() {
return MOCK_SHOE_SIZE;
}
}
}The test passes.
No comments:
Post a Comment