我曾经使用过JUnit和Mocks,但我想知道,JUnit中的Mocks和Stubs之间有什么区别,以及如何在JUnit,Java中使用Stubs?而作为拥有EasyMock,Mockito等的Mocks,Stubs在Java中使用了什么?
请给出Java中Stubs的一些示例代码.
Mic*_*ker 25
在我看来,这与框架或技术无关.模拟和存根可以定义如下.
存根是系统中现有依赖关系(或协作者)的可控替代.通过使用存根,您可以在不直接处理依赖关系的情况下测试代码.
模拟对象是系统中的伪对象,用于确定单元测试是通过还是失败.它通过验证被测对象是否与假对象按预期交互来实现.
也许这些图像可以澄清存根与模拟之间的相互作用.
Ser*_*tin 18
要在junit中使用存根,您不需要任何框架.
如果你想要一些接口只是实现它:
interface Service {
String doSomething();
}
class ServiceStub implements Service {
public String doSomething(){
return "my stubbed return";
}
}
Run Code Online (Sandbox Code Playgroud)
然后创建新的存根对象并将其注入测试对象.
如果要存根具体类,请创建子类并覆盖存根方法:
class Service {
public String doSomething(){
// interact with external service
// make some heavy computation
return "real result";
}
}
class ServiceStub extends Service {
@Override
public String doSomething(){
return "stubbed result";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28723 次 |
| 最近记录: |