DJunit对于Virtual Mock的支持

来源:互联网 发布:淘宝店铺取名 编辑:程序博客网 时间:2024/05/01 04:45

Java中编写单元测试,复杂一些的技术包括StubMock。如今的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

断言指定类的指定方法是否没被调用

 

一个最简单的例子:

 

import jp.co.dgic.testing.framework.DJUnitTestCase;
public class HelloWorldTest extends DJUnitTestCase {
    // omit
    public void test001() {
        System.out.println("[test001]");
        HelloWorld.main(null);
    }

    public void test002() {
        addReturnValue("HelloWorld""sayHello""Good morning World.");
        System.out.println("[test002]");
        HelloWorld.main(null);
    }

    public void test003() {
        addReturnValue("HelloWorld""sayHello""bye.");
         System.out.println("[test003]");
        HelloWorld.main(null);
    }
}