首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockito不能模拟依赖于解编组器的类

Mockito不能模拟依赖于解编组器的类
EN

Stack Overflow用户
提问于 2017-12-19 19:33:45
回答 1查看 1K关注 0票数 4

设班福:

代码语言:javascript
复制
public class Foo {
  private Unmarshaller unmarshaller;
  public Foo(Unmarshaller unmarshaller) {}
}

以下测试失败:

代码语言:javascript
复制
@Test
public void test() {
  Foo packagingJobSource2 = mock(Foo.class);
}

...with错误:

代码语言:javascript
复制
org.mockito.exceptions.base.MockitoException: 
Mockito cannot mock this class: class com.bell.cts.fonse.vod.streaming.services.adapter.cron.avcm.packagingjob.loading.xmlstorage.Foo.

Mockito can only mock non-private & non-final classes.
If you're not sure why you're getting this error, please report to the mailing list.


Java               : 9
JVM vendor name    : Oracle Corporation
JVM vendor version : 9.0.1+11
JVM name           : Java HotSpot(TM) 64-Bit Server VM
JVM version        : 9.0.1+11
JVM info           : mixed mode
OS name            : Mac OS X
OS version         : 10.13.2

我尝试使用JDK 8而不是9,它运行得很好。我不知道它为什么会失败,也不知道我怎样才能让它成功。

Unmarshaller是依赖项时,这个问题就会特别发生。如果你把它改为另一种类型,比如String,它会工作.

EN

回答 1

Stack Overflow用户

发布于 2017-12-20 08:30:14

这样做的可能原因是当您在 is not resolved by default.类路径上编译或运行代码时,。

如果您目前依赖的是类路径,而不是(计划)迁移到使用Java平台模块系统(JPMS),则可以使用迁移指南中所述的(1)选项,并且在运行测试时将VM arg添加到执行中,如下所示:

代码语言:javascript
复制
--add-modules java.xml.bind
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47894024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档