模拟ByteBuffer时,我遇到了JMOCK 2.6和JUINT4的问题
@RunWith(JUnit4.class)
public class Test {
@Rule
public JUnitRuleMockery context = new JUnitRuleMockery() {
{
setImposteriser(ClassImposteriser.INSTANCE);
}
};
@Before
public void setUp() throws Exception {
}
@org.junit.Test
public void testMockByteBuffer() {
final java.nio.ByteBuffer byteBufferMock = context.mock(java.nio.ByteBuffer.class);
byteBufferMock.remaining();
}
}
我预计测试会失败,但它会通过。
答案 0 :(得分:0)
刚才意识到我无法模拟最终方法。 java.nio.ByteBuffer.remaining()声明为final。
自: http://jmock.org/mocking-classes.html
如果要模拟最终类或最终方法,JDave库包含一个终结器> Instrumentation代理,它可以在JVM加载类之前使类取消。然后,他们可以被ClassImposteriser嘲笑。