我正在try 使用Mockito测试方法,但收到以下错误: "java.lang.ClassCastException:MessageContext$MockitoMock与SOAPMessageContext不兼容"

这是我要测试的代码的相关片段:

public static String returnMessage(MessageContext ctx){
try{
SOAPMessageContext mc = (SOAPMessageContext) ctx;
if(mc != null){
...
}
}
}

mc是空的,当我试着调试我的测试时,它不会超过这个点.

这是一个测试:

@Test
public void testReturnMessage(){

MessageContext mockMc = mock(MessageContext.class);
SOAPMessageContext mockSMc = (SOAPMessageContext)mock(MessageContext.class);

assertNotNull(MyClass.returnMessage(mockMc);
}

据我所知,你不能嘲弄别人.但我该如何绕过这个问题呢?我怎么能测试这种东西呢?

推荐答案

您可以try :

MessageContext mockMc = mock(SOAPMessageContext.class);

@Mock(extraInterfaces = {SOAPMessageContext.class})
MessageContext mockMc;

Java相关问答推荐

Selenium Java:无法访问IFRAME内部的元素

编译期间错误(Java 0000)Android .Net MAUI

ittext pdf延迟签名,签名无效

Java List with all combinations of 8 booleans

为什么JAVA&S清洁器使用链表而不是并发HashSet?

为什么使用JDK21获取锁定锁比使用JDK11慢

Java Mooc.fi Part 12_01.Hideout -返回和删除方法

内存和硬盘中的Zip不同,这会导致下载后的Zip损坏

如何在我的世界中为互动增加冷却时间?

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

当我在Java中有一个Synchronized块来递增int时,必须声明一个变量Volatile吗?

对角线填充二维数组

在java中使用不同的application.properties-jar而不使用Spring

在Java中使用StorageReference将数据从Firebase存储添加到数组列表

JavaFX:为什么我的ComboBox添加了一个不必要的单元格的一部分?

Android上的SQLite:Android.database.SQLite.SQLiteReadOnlyDatabaseException:try 写入只读数据库(代码1032 SQLite_readonly_DBMOVED)

这是JavaFX SceneBuilder的错误吗?

Spring Integration SFTP 连接失败 - 无法协商 kex 算法的密钥交换

为什么 log4j 过滤器在appender中不起作用

在数组列表中找到对象后,未从数组中删除对象