Java 接口模拟工作不正常
我正在编写一个测试,并试图模拟接口IMyResponse。但它在模拟后返回int。以下是我的工作:Java 接口模拟工作不正常,java,unit-testing,testing,mockito,Java,Unit Testing,Testing,Mockito,我正在编写一个测试,并试图模拟接口IMyResponse。但它在模拟后返回int。以下是我的工作: public interface IMyResponse extends Serializable { // ... Object getResponseObject(); } private IMyResponse myResponse; @Before public void setUp(){ myResponse = mock(IMyResponse.class)
public interface IMyResponse extends Serializable {
// ...
Object getResponseObject();
}
private IMyResponse myResponse;
@Before
public void setUp(){
myResponse = mock(IMyResponse.class);
}
@Test
public void mockTest(){
// myResponse.getResponseObject() is 0
when(myResponse.getResponseObject()).thenReturn("value");
// myResponse.getResponseObject() is 46
}
我做错了什么?更改mockito版本有帮助(它是1.10):
[帮助我]
没有什么明显的错误。请提供我们可以运行的代码来重现该问题。您是否用以下注释测试类:@RunWith(MockitoJUnitRunner.class)
?@RunWith(MockitoJUnitRunner.class)公共类MyResponseTest{private imyrresponse myResponse;@Before public void setUp(){myResponse=mock(imyrresponse.class);}@Test public void mockTest(){when(myResponse.getResponseObject()).thenReturn(“value”);System.out.println(myResponse.getResponseObject();}}
工作得非常好。不知道你在做什么我不能提供更多的细节,因为这个接口是一个大型库的一部分。当我将此接口更改为子类时,它可以正常工作。也许你知道什么是错误的?注释是@RunWith(AndroidJUnit4.class),谢谢你提供了这个自我回答。也请通过勾选“已接受”标记将其标记为解决方案。
androidTestImplementation 'org.mockito:mockito-android:2.15.0'