【问题标题】:ByteBuffer mock allows all calls but I didn't set JMOCK to alow itByteBuffer mock 允许所有调用,但我没有设置 MOCK 允许它
【发布时间】:2014-04-09 14:52:06
【问题描述】:

我在模拟 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();
    }

}

我预计测试会失败,但它通过了。

【问题讨论】:

    标签: java mocking jmock


    【解决方案1】:

    刚刚意识到我无法模拟最终方法。 java.nio.ByteBuffer.remaining() 声明为 final。

    来自: http://jmock.org/mocking-classes.html

    如果您想模拟最终类或最终方法,JDave 库包含一个取消终结器 >仪器代理,它可以在类被 JVM 加载之前取消终结。然后它们可以>被 ClassImposteriser 模拟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2011-09-25
      相关资源
      最近更新 更多