java - 如何使用参数 T 模拟和验证方法

标签 java mocking mockito verify parameterized-types

我有一个方法:

public V doSomething(T t, Class<V> classV){}

如何使用模拟对象调用此方法并验证它?

我正在尝试这样:

when(mockObject.doSomething(any(MyConcreteT.class), AnotherConcrete.class).
                thenReturn(obj);    
verify(mockObject).doSomething(any(MyConcreteT.class), AnotherConcrete.class);

但收到错误

InvalidUseOfMatchersException: Invalid use of argument matchers!

感谢任何(帮助)

最佳答案

据我所知,Mockito 要求所有参数都是非匹配器或所有参数都是匹配器。它不允许混合它们。 (不过,详细的错误消息应该会告诉您这一点。)

尝试:

when(mySpy.doSomething(any(MyConcreteT.class), eq(AnotherConcrete.class)).
                thenReturn(obj);    
verify(mySpy).doSomething(any(MyConcreteT.class), eq(AnotherConcrete.class));

关于java - 如何使用参数 T 模拟和验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26927117/

相关文章:

Java - 如何测试 Catch block ?

java - 无法模拟 FileInputStream

java - 从 println 读取模拟的 ServletOutputStream

java - 在 Spring 中实现 JpaRepostiory 时使用存储库注释

java - 更新SQLite数据库导致错误

c++ - 如何在 C++ 中通过链接器进行模拟测试

php - 如何使 PHPUnit mock 在调用未配置的方法时失败?

scala - 尝试在 Play 中运行 Mockito 测试时出现错误消息

java - 使用 .pem 文件在 java 中发送 https 请求

java - Antlr Eclipse IDE White Space 没有被跳过