Java中编写单元测试,复杂一些的技术包括Stub和Mock。如今的Mock技术真的是越来越成熟了,甚至在Mock的概念上衍生出了Virtual Mock的概念。目前很多Java项目编写单元测试都会涉及部分Virtual Mock的技术。
DJunit是基于JUnit开发的开源的测试框架,可以集成到Eclipse,支持很多Mock方法,支持测试覆盖率查看等等。详细的可以看http://en.wikipedia.org/wiki/DjUnit
下面的列表显示了DJunit对于Mock的支持。
| Method Name | Contents |
| addReturnValue | 为指定类的指定方法添加指定的返回值 |
| setReturnValueAt | 为指定类的指定方法在指定调用次数中设定指定的返回值 |
| setReturnValueAtAllTimes | 为指定类的指定方法在所有调用次数中设定指定的返回值 |
| addReturnNull | 为指定类的指定方法添加Null的返回值 |
| setReturnNullAt | 为指定类的指定方法在指定调用次数中添加Null的返回值 |
| setReturnNullAtAllTimes | 为指定类的指定方法在所有调用次数中添加Null的返回值 |
| getArgument | 取得指定类的指定方法所传入的参数 |
| getCallCount | 取得指定类的指定方法的调用次数 |
| assertArgumentPassed | 断言指定类的指定方法是否传入了指定的参数 |
| assertCalled | 断言指定类的指定方法是否被调用 |
| assertNotCalled | 断言指定类的指定方法是否没被调用 |
一个最简单的例子:
importjp.co.dgic.testing.framework.DJUnitTestCase;publicclassHelloWorldTestextendsDJUnitTestCase{//omitpublicvoidtest001(){System.out.println("[test001]");HelloWorld.main(null);}publicvoidtest002(){addReturnValue("HelloWorld","sayHello","GoodmorningWorld.");System.out.println("[test002]");HelloWorld.main(null);}publicvoidtest003(){addReturnValue("HelloWorld","sayHello","bye.");System.out.println("[test003]");HelloWorld.main(null);}}
本文介绍了如何使用DJunit进行Java单元测试,并重点讲解了VirtualMock技术的应用。通过具体示例展示了如何设置返回值、参数传递及调用次数等,帮助读者更好地理解和实践Java单元测试。

被折叠的 条评论
为什么被折叠?



