这是一个非常新手的问题,但我不知道如何存根.
我必须模拟一个像这样返回Class的方法.
public Class<? extends SomeClass> getAClass();
Run Code Online (Sandbox Code Playgroud)
如果我做这样的事情
when(this.someInstance.getAClass())
.thenReturn(SomeClassThatExtendsSomeClass.class);
Run Code Online (Sandbox Code Playgroud)
我收到编译错误.
The method thenReturn(Class<capture#1-of ? extends SomeClass>) in the type OngoingStubbing<Class<capture#1-of ? extends SomeClass>> is not applicable for the arguments (Class<SomeClassThatExtendsSomeClass>)
Run Code Online (Sandbox Code Playgroud)
如果方法声明可以改为上面提到的@Bohemian,
public <T extends SomeClass> Class<T> getAClass();
Run Code Online (Sandbox Code Playgroud)
然后你可以编写你的模拟语句如下:
when(this.someInstance.<SomeClassThatExtendsSomeClass>getAClass())
.thenReturn(SomeClassThatExtendsSomeClass.class);
Run Code Online (Sandbox Code Playgroud)
否则,doReturn语义应该如下使用:
Mockito
.doReturn(SomeClassThatExtendsSomeClass.class)
.when(this.someInstance.<SomeClassThatExtendsSomeClass>getAClass());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4938 次 |
| 最近记录: |