静态方法如何写单元测试?

   当一个类里有引用到其他的对象时,如果不是调用其静态的方法,我一般都是用EasyMock来mock对象,但是碰到静态方法时,大家如何写单元测试呢?

Check this out:

Powermock
http://code.google.com/p/powermock/

查了一下,EasyMock没有提供这个功能。

想了一种方法,可以试试看看:

主要是对每个静态函数用一个对象的方法进行包装

1 加入一个新接口:
public interface IStaticInterface {
public void s_method1();

public void s_method2();

// 有几个要测得静态方法就加几个
}

2 扩展要测得接口
例如要测的类的接口是INeededTest,那么
public class TestClass implement INeededTest, INeededTest {
@Override
public void s_method1() {
// 做静态方法一要做的事情
}
...
}

3 对TestClass建立EasyMock

另外,好像有一些开源的工具支持Mock static方法的,可以去看看源码实现。