dan*_*ben 56
Mock对象是用于单元测试的东西.如果您有一个要测试其方法的对象,并且这些方法依赖于某些其他对象,则可以创建依赖项的模拟,而不是该依赖项的实际实例.这允许您单独测试对象.
用于创建模拟对象的常见Java框架包括JMock和EasyMock.它们通常允许您创建可以定义其行为的模拟对象,因此当您在模拟对象上调用方法时,您可以确切地知道期望什么(返回值和副作用).
例如,一个常见的用例可能是MVC应用程序,其中有DAO层(数据访问对象)和执行业务逻辑的Controller.如果您想对控制器进行单元测试,并且控制器依赖于DAO,则可以模拟将向控制器返回虚拟对象的DAO.
需要注意的一件事是,通常情况下,模拟对象实现与它们模拟的对象相同的接口 - 这允许您的代码通过接口类型处理它们,就像它们是真实的实例一样.
sat*_*esh 15
模拟和模拟对象不是特定于Java.模拟对象是一种单元测试技术,其中代码块由模拟实际代码的虚拟实现替换.这有助于编写针对被测试类提供的功能的单元测试.
查看这些文章,它们提供了对
模拟概念的非常好的介绍:模拟对象(PDF)
Endo-Testing:使用模拟对象进行单元测试(PDF)
如果您正在寻找Java中单元测试的模拟框架,请查看: Mockito.我发现它对我的单元测试很有用.