The*_*rtz 4 java getter setter stub mockito
我是Mockito的新手,我想知道如何存根获取/设置对.
例如
public interface Order {
public short getStatus();
public void setStatus(short status);
}
Run Code Online (Sandbox Code Playgroud)
如何使它们正常运行:
如果我在调用的某个地方调用setStatus(4);我想getStatus()返回4.如何才能做到这一点?
你是捣蛋还是嘲笑?
不同之处在于您是在验证行为还是为测试提供数据.你说:
如果在测试的某个地方我调用setStatus(4); 我想让getStatus()返回4.
这意味着两者同时存在.您要么验证是否setStatus()使用参数4进行了调用.
verify(mockObject).setStatus(4);
Run Code Online (Sandbox Code Playgroud)
或者您希望将模拟对象设置为在getStatus()调用时返回4 .
when(mockObject.getStatus()).thenReturn(4);
Run Code Online (Sandbox Code Playgroud)
Mockito有一些教程可以解释如何在每种情况下使用它.我怀疑你可以在你的测试中做到这两件事(但是没有检查过),但这对我来说是一种气味,因为理想情况下你应该只检查你的测试中的一件事,其他一切都应该被删除.但是,一如既往,上下文就是一切,所以你可能需要将对象的一部分存根,以便你可以验证另一部分的行为,在这种情况下它会没问题.
遵循AAA语法并安排你的测试(即进行设置并有when条款)然后行动(即调用被测对象上的方法)然后执行你的断言(即你的verify陈述)
编辑
似乎在较新版本(1.8+)的mockito中,可能可以做你想要的,虽然不推荐.您可以使用Spy创建对象的部分模拟.在这种情况下,你应该能够创建一个实际对象的间谍,保持getStatus()和setStatus()方法的un-stubbed(所以它们实际上被调用和使用),并且只是将其他方法存根(或者只是验证它们被大概调用).您可以在第13节" 查看此页面上的真实对象"中阅读相关内容.
| 归档时间: |
|
| 查看次数: |
2805 次 |
| 最近记录: |