加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在JMockit中模拟测试类的私有方法

发布时间:2020-12-15 04:11:23 所属栏目:Java 来源:网络整理
导读:在我的测试类(CUT) – 一个ejb – 我有一个私有方法“getConnection”. 我想测试CUT的另一种方法,但这种方法会先失败. 我尝试过如下所示,但“调用”是错误的.我不想调用该方法,我想将其存根.但是怎么样? (‘连接’是存根) new NonStrictExpectations() { {
在我的测试类(CUT) – 一个ejb – 我有一个私有方法“getConnection”.
我想测试CUT的另一种方法,但这种方法会先失败.

我尝试过如下所示,但“调用”是错误的.我不想调用该方法,我想将其存根.但是怎么样? (‘连接’是存根)

new NonStrictExpectations() {
  {
    invoke(archivingBean,"getConnection");result = connection;
  }
};
archivingBean.moveCreditBasic2Archive(new Date());

解决方法

您的测试是正确的,除了它缺少模拟类型的声明.在这种情况下,EJB类.

通常,模拟类型会被完全模拟(所有方法).在这种情况下,您可以为测试方法声明一个@Mocked MyEJB archivingBean参数.

另一方面,对于部分模拟,您使用NonStrictExpectations(Object …)构造函数,如下所示:

new NonStrictExpectations(archivingBean) {{ // <== note the argument here
    invoke(archivingBean,"getConnection"); result = connection;
}};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读