字号: 大大 中中 小小 JUnit中Mock的使用摘记
Mock的概念还是比较简单的,相当于真实的对象的替身,它实现了测试中用到的接口,并给接口中的方法设置测试需要返回的值,详细内容可以参考http://images.china-pub.com/ebook20001-25000/22962/ch6.pdf
现在有多种用来方便地动态生成Mock对象的Java API:如Easy Mock,JMock,DynaMock等
Easy Mock:
(上面的参考资料中有简单地讲解)
JMock:
1. http://www.jmock.org/
2. http://java.ccidnet.com/art/3737/20060515/552351_1.html
DynaMock:
1. http://www.shinetech.com/pages/viewpage.action?pageId=188
2. http://www.shinetech.com/display/www/Experiences+with+Mock+Objects (在这个网站上有很多很不错的文章。)
我们公司使用的是这个,所以现在重点看一下这个。这些Mock Framework在调用的方式上有一些区别,但还是比较容易上手的。这三种不同的framework现在看来还是JMock比较有前途,它保持了相当快的更新速度,而且在Design上也比DynaMock更好些。
除了这三种以外,还有诸如RMock之类的框架,关于Mock的最新的信息可以参见http://www.mockobjects.com/
Notes:
如果你使用Service Locator等设计模式的话,记得在test中包含一个“tearDown”方法将Service Locator设为原来的值。
Mock的概念还是比较简单的,相当于真实的对象的替身,它实现了测试中用到的接口,并给接口中的方法设置测试需要返回的值,详细内容可以参考http://images.china-pub.com/ebook20001-25000/22962/ch6.pdf
现在有多种用来方便地动态生成Mock对象的Java API:如Easy Mock,JMock,DynaMock等
Easy Mock:
(上面的参考资料中有简单地讲解)
JMock:
1. http://www.jmock.org/
2. http://java.ccidnet.com/art/3737/20060515/552351_1.html
DynaMock:
1. http://www.shinetech.com/pages/viewpage.action?pageId=188
2. http://www.shinetech.com/display/www/Experiences+with+Mock+Objects (在这个网站上有很多很不错的文章。)
我们公司使用的是这个,所以现在重点看一下这个。这些Mock Framework在调用的方式上有一些区别,但还是比较容易上手的。这三种不同的framework现在看来还是JMock比较有前途,它保持了相当快的更新速度,而且在Design上也比DynaMock更好些。
除了这三种以外,还有诸如RMock之类的框架,关于Mock的最新的信息可以参见http://www.mockobjects.com/
Notes:
如果你使用Service Locator等设计模式的话,记得在test中包含一个“tearDown”方法将Service Locator设为原来的值。