【发布时间】:2018-06-08 14:30:25
【问题描述】:
我正在编写一个测试并尝试模拟 IMyResponse 接口。但它在模拟后返回 int 。这是我的工作:
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
}
我做错了什么?
【问题讨论】:
-
[help-me]没有什么明显的错误。请提供我们可以运行以重现问题的代码。 -
你用
@RunWith(MockitoJUnitRunner.class)注释了测试类吗? -
@RunWith(MockitoJUnitRunner.class) public class MyResponseTest { private IMyResponse myResponse; @Before public void setUp(){ myResponse = mock(IMyResponse.class); } @Test public void mockTest(){ when(myResponse.getResponseObject()).thenReturn("value"); System.out.println(myResponse.getResponseObject()); } }工作得很好。不知道你在做什么 -
我不能提供更多细节,因为这个接口是一个大库的一部分。当我将此接口更改为子类时,它可以正常工作。您可能知道出了什么问题吗?
-
注解为@RunWith(AndroidJUnit4.class)
标签: java unit-testing testing mockito