java mock 环境设置_java – 如何在mockito中设置对mock对象方法的调用而不调用原始方法本身...

以下在Mockito 1.9.0和JUnit 4.8.2下运行,不会向我的控制台打印任何内容:

import static org.mockito.Mockito.*;

import org.junit.Test;

public class TestNonCall {

public class TestClass {

public String test() {

System.out.println("test called!");

return "test";

}

}

@Test

public void doTest() {

final TestClass mock = mock(TestClass.class);

when(mock.test()).thenReturn("mock!");

}

}

此外,如果我在test()方法中放置一个断点,它永远不会被击中.

也许发布更多代码?看起来你的例子不够复杂,无法证明你遇到问题的行为.

另外:你使用的是最新版的Mockito吗?

编辑:新想法:你嘲笑最后的方法吗?

如果向正在模拟的方法添加最终修饰符,则会获得您报告的行为.

这是因为Mockito不会模拟最终和静态方法.相反,它将调用委托给真正的实现.

您的实际代码可能会试图模拟最终方法吗?

如果是这样,你可以使用PowerMock,它是Mockito的扩展,允许模拟最终方法.

您需要将以下注释添加到测试用例类:

@RunWith(PowerMockRunner.class)

@PrepareForTest(TestClass.class)

public class TestNonCall {

// ...

}

并在测试方法中使用PowerMock方法模拟类:

final TestClass mock = PowerMockito.mock(TestClass.class);

然后照常进行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值