基本然后回归不在Eclipse中的Mockito

时间:2015-08-22 01:00:58

标签: java eclipse junit mockito

抱歉这样一个基本问题。我有点气馁,为什么我不能为我的生活配置一个thenReturn我的模拟。在eclipse单元测试视图中,我得到了这个故障跟踪:

org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() request an argument which has to be 'a mthod call on a mock'.
For example:   
when(mock.getArticles()).thenReturn(articles);

但这是我的代码,它实际上只是一个简单的POJO:

ConnectionDetails mockDetails = mock(ConnectionDetails.class);
when(mockDetails.getHostName()).thenReturn("hello");
assertEquals("hello", mockDetails.getHostName());

这应该可行吗?

这是失败追踪: eclipse failure trace

方法声明:

public final String getHostName() {
    return hostName;
}

感谢您指出问题是我的方法声明中的“最终”。

1 个答案:

答案 0 :(得分:1)

Gavin已在评论中解决:

  

您是否检查过getHostName不是最终的?

Mockito模拟是代理(有效地动态生成的子类),标记方法final阻止它们触发Mockito的覆盖。因此,您的测试调用实际方法,Mockito提供MissingMethodInvocationException。