使用jMock辅助单元测试
2004-04-19 19:07
477 查看
使用jMock辅助单元测试
作者:冰云时间:2004-04-16
联系:icecloud(AT)sina.com
Blog:http://icecloud.51.net
jMock是Junit的一个增强库。源于http://www.jmock.org。
jMock简单易用,非常适合TDD中的Mock测试模式
首先我们来看一段简单测试代码
package name.nona.test.jmock; import java.sql.SQLException; import java.sql.Statement; import org.jmock.Mock; import org.jmock.MockObjectTestCase; public class TestUsageOfJmock extends MockObjectTestCase { public void testDatabaseUseage() throws SQLException{ Mock mockStmt = new Mock(Statement.class); String sql = "select * from test"; mockStmt.expect(once()).method("execute") .with(eq(sql)).will(returnValue(false)); Statement stmt = (Statement) mockStmt.proxy(); assertFalse(stmt.execute(sql)); } } |
通过对这个对象的execute操作,返回一个false值。
其中,关键的语句是
mockStmt.expect(once()).method("execute").with(eq(sql)).will(returnValue(false));
解释如下:
expect: 期待的执行次数,可以有 once,atLeastOnce(),notCalled()三种。
method 期待调用的方法名,这里是execute
with 方法需要的参数,如果没有的话就不用写with,直接will
will 返回值,没有就不写啦
其中的once, eq, returnValue都是继承自MockObjectTestCase的方法。
执行后,Green,成功。尝试两次调用 assertFalse(stmt.execute(sql)); 提示错误。
jMock是通过CGLIB的DynamicProxy来实现的mock功能。
注:本文仅是对jMock的一个简单介绍,没有太多内容。更多的东西需要你自己来探索,例如jMock的设计很有意思,使用了ValueObject模式等等。
如果对Jmock有兴趣,请访问http://www.jmock.org。 你可以下载最新的jMock包来使用,可能在接口上有些不同,但基本的调用已经定型不变(如上)。
1.0stable的版本正在开发中,帮助很少,通过看JavaDoc和testCase你可以了解到最新的用法。
版权声明: 本文由冰云完成,首发于CSDN,作者保留中文版权。 未经许可,不得使用于任何商业用途。 欢迎转载,但请保持文章及版权声明完整。 如需联络请发邮件:icecloud(AT)sina.com Blog:http://icecloud.51.net |
相关文章推荐
- 使用jMock辅助单元测试
- 使用jMock辅助单元测试
- 用 ConTest 进行多线程单元测试 - 为什么并行测试很困难以及如何使用 ConTest 辅助测试
- 使用 ConTest 进行多线程单元测试 - 为什么并行测试很困难以及如何使用 ConTest 辅助测试
- 单元测试及框架简介 --junit、jmock、mockito、powermock的简单使用
- 使用jmock对HttpServlet类进行单元测试
- 单元测试及框架简介 --junit、jmock、mockito、powermock的简单使用
- 【PRO ASP.NE MVC4 学习札记】使用Moq辅助进行单元测试
- C#中使用NUnit进行单元测试
- 使用Junit进行单元测试
- Visual Studio 2013的安装和使用及最大子数组和的单元测试
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- 使用Visual Studio 2013进行单元测试--初级篇
- 使用WatiN对ASP.NET页面进行单元测试
- 使用Junit对Spring进行单元测试实战小结
- 测试函数JavaScript单元测试工具使用—QUnit
- 使用WebDevHelper辅助ASP.NET AJAX程序开发
- 使用junit单元测试的java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing问题解决办法
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在 Visual Studio 单元测试中使用CallContext 导致的 Unit Test Adapter threw exception: Type is not resolved for member... 异常