如何使用 easymock 模拟类中的静态方法?

2022-09-01 07:38:42

假设我有一个这样的类:

public class StaticDude{
    public static Object getGroove() {
        // ... some complex logic which returns an object
    };
}

如何使用简单的模拟模拟静态方法调用? .StaticDude.getGroove()

我正在使用简单的模拟3.0


答案 1

不知道如何使用纯的EasyMock,但请考虑使用PowerMock扩展到EasyMock。

它有很多很酷的功能,可以做你需要的事情 - https://github.com/jayway/powermock/wiki/MockStatic


答案 2

Easymock是一个“用于接口(以及通过类扩展的对象)”的测试框架,因此您可以模拟没有接口的类。考虑为静态类创建一个具有访问器的接口对象,然后模拟该访问器。

编辑:顺便说一句,我不建议做静态类。如果您正在进行TDD,最好将所有内容都接口化。


推荐