为了获取对象,对静态类进行了两次调用。就像下面这样:
MyObject myobj1 = Mock(MyObject.class)
PowerMock(static1.class)
when(static1.method(param1,parame2,param3).thenreturn(myobj1);
myobj1.setcontent(inputstream1);
MyObject myobj2 = Mock(MyObject.class)
when(static1.method(param1,parame2,param3).thenreturn(myobj2);
myobj2.setcontent(inputstream2);
Run Code Online (Sandbox Code Playgroud)
通过上面的调用,我们注意到方法调用的响应中设置的内容被 的内容覆盖inputstream2。
我们如何使用 Mockito 创建多个返回对象?
当您使用相同的参数进行多个存根时,每个存根都会覆盖前一个。你打电话时
when(static1.method(param1, param2, param3).thenReturn(myobj2);
Run Code Online (Sandbox Code Playgroud)
static1.method(param1, param2, param3)这会覆盖之前返回的存根myobj1。
为了在每次调用时返回不同的返回值,static1.method()您需要thenReturn()像这样链接调用:
when(static1.method(param1, param2, param3)
.thenReturn(myobj1)
.thenreturn(myobj2);
Run Code Online (Sandbox Code Playgroud)
或者,您可以将其缩写为
when(static1.method(param1, param2, param3)
.thenReturn(myobj1, myobj2);
Run Code Online (Sandbox Code Playgroud)
使用这两种方式中的任何一种,第一个调用static1.method()将返回myobj1,第二个调用将返回myobj2。
因此,您的代码应该首先与 一起使用inputstream1,然后再与inputstream2.
| 归档时间: |
|
| 查看次数: |
2672 次 |
| 最近记录: |