読者です 読者をやめる 読者になる 読者になる

オレオレJUnit フレームワーク

JUnitでオレオレフレームワーク(というほどのものじゃないが)を書きました。
こうしておくとちょっとだけ楽になります。

public class MyTestFrame extends TestCase{

    private long start;
    private long end;

    protected static int count = 0;

    @Override
    public void setUp(){
        System.out.println();
        start = System.currentTimeMillis();
    }
    @Override
    public void tearDown(){
        end = System.currentTimeMillis();
        System.out.println(getMethodName(count++)+": "+(end-start)+"ms.");
    }

    private static String methodNames[] = null;
    private String getMethodName(int num){
        if(methodNames == null || methodNames.length == 0){
            List<String> tmpNames = new ArrayList<String>();
            Method ms[] = this.getClass().getMethods();
            String mn = null;
            for(Method m : ms){
                mn = m.getName();
                if(mn.startsWith("test")) tmpNames.add(mn);
            }
            methodNames = new String[tmpNames.size()];
            methodNames = tmpNames.toArray(methodNames);
        }
        return methodNames.length <= num ? "null" : methodNames[num];
    }
}

こんな感じで標準出力されるのでコマンドベースで実行したりする場合などには役に立ちます。

.
testSimple: 769ms.
.
testBuffered: 206ms.
.
testStream: 307ms.
.
testBufferedStream: 236ms.
.
testApacheIO: 282ms.