浏览 5017 次
锁定老帖子 主题:用EasyMock辅助JUnit测试
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-23
最后修改:2009-02-23
由于JUnit很难操控外部环境的资源,如数据库、网络、Servlet引擎;通过MOCK对象就能模拟外部环境的资源,从而保证JUnit的正常运行。 其中EasyMock是一套简单的生成MOCK对象类库,用它可以非常容易的辅助JUnit完成单元测试;如下:
public class UseMock { @Test
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-23
Gmock可以提供更加简洁的语法:
void testMock() { HttpServletRequest request = mock(HttpServletRequest) { getParameter("ffff").returns("33333") getRealPath("/").returns("fffffffff").stub() } play { println request.getParameter("ffff") println request.getRealPath("/") println request.getRealPath("/") } } |
|
返回顶楼 | |
发表时间:2009-02-23
最后修改:2009-02-23
推荐 mockito:simpler & better mocking
http://code.google.com/p/mockito //you can use flexible argument matchers, e.g: when(mock.someMethod(anyString())).thenReturn(10); //setting exception to be thrown: when(mock.someMethod("some arg")).thenThrow(new RuntimeException()); //you can set different behavior for consecutive method calls. //Last stubbing (e.g: thenReturn("foo")) determines the behavior of further consecutive calls. when(mock.someMethod("some arg")) .thenThrow(new RuntimeException()) .thenReturn("foo"); |
|
返回顶楼 | |
发表时间:2009-02-23
daquan198163 写道
我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。 |
|
返回顶楼 | |
发表时间:2009-02-24
最后修改:2009-02-24
JohnnyJian 写道 daquan198163 写道
我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。 哦?你的意思是那个groovy的mock框架也适合用来测java? 这我倒是没想到 |
|
返回顶楼 | |
发表时间:2009-02-24
daquan198163 写道 JohnnyJian 写道 daquan198163 写道
我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。 哦?你的意思是那个groovy的mock框架也适合用来测java? 这我倒是没想到 是的,gmock与groovy官方的解决方案——MockFor类——最大的不同就是gmock可以用来测java代码(当然,更简洁的语法也是一个不同点)。 |
|
返回顶楼 | |