RIT*_*AVI 6 java junit mockito
我正在研究一个使用JIRA的REST Client的J2EE项目。该客户端返回一个Jira issue对象。一些领域的Issue阶级是key,self,id,summary,等等self领域在这里基本上是一个URI。
例如,http://jira.company.com/rest/api/2.0/issue/12345
我有一个用例,其中我必须从上面指定的URI中检索主机。
我可以用类似的方法做到这一点issue.getSelf().getHost()。
issue.getSelf()返回“ URI”类型的对象并获取主机,我可以简单地使用类getHost()提供的方法,URI该类以String格式返回主机URL 。
一切正常。我在使用Mockito进行这段代码的单元测试时遇到问题。我不知道如何模拟链接的方法调用。
我有以下代码片段。
private static final String JIRA_HOST = "jira.company.com";
@Mock private com.atlassian.jira.rest.client.api.domain.Issue mockIssue;
@Before
public void setup() {
when(mockIssue.getSelf().getHost()).thenReturn(JIRA_HOST);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我得到一个Null Pointer Exception。
经过大量研究之后,我才知道必须使用@Mock(answer = Answers.RETURNS_DEEP_STUBS) private com.atlassian.jira.rest.client.api.domain.Issue mockIssue;。
但这也给我一个启示Null Pointer Exception。
有人可以告诉我如何模拟链接的方法调用。
您不需要RETURNS_DEEP_STUBS或不需要任何模拟注释。您只需要模拟链中要返回的每个对象,类似于:
@Mock Issue issue;
@Mock URI uri;
@Before
public void setup() {
when(uri.getHost()).thenReturn(JIRA_HOST);
when(issue.getSelf()).thenReturn(uri);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6291 次 |
| 最近记录: |