【发布时间】:2013-07-03 20:49:10
【问题描述】:
我正在尝试使用 JMock 模拟以下方法,但遇到了编译器错误。
模拟类:
public interface myClass<T extends SomeClass>{
public void myMethod(T parameter);
public void myOtherMethod();
}
模拟预期:
exactly(1).of(myClassMocked).myOtherMethod();
exactly(1).of(myClassMocked).myMethod( with(any(SomeClass.class)) );
编译错误:
myClass 类型中的方法 myMethod(capture#6-of ?) 不适用于参数 (SomeClass)
我尝试将 Object.class 与其他兼容的类切换并使用匹配器。
我无法简单地更改方法签名,那太容易了。
总而言之,我想忽略这个特定的方法调用,但我不能忽略整个 MyClass 模拟,因为它是我在测试方法中用于其他任务的服务。
编辑:
解决方法是改变
final myClass<?> myClassMocked= mockery.mock(myClass.class);
(eclipse建议的通用规范)到
final myClass<SomeClass> myClassMocked= mockery.mock(myClass.class);
【问题讨论】:
标签: java generics mocking jmock