【发布时间】:2011-06-22 10:05:15
【问题描述】:
我有这样的课:
public final class Foo
{
public native int getBar();
public String toString()
{
return "Bar: " + getBar();
}
}
请注意,getBar() 是用 JNI 实现的,并且类是 final。我想编写一个 junit 测试来测试 toString() 方法。为此,我需要模拟 getBar() 方法,然后运行原始 toString() 方法来检查输出。
我的第一个想法是这一定是不可能的,但后来我发现PowerMock 支持根据功能列表测试最终类和本机方法。但到目前为止,我还没有成功。我管理的最好的事情是模拟整个类,但随后测试测试了模拟的 toString() 方法而不是真正的方法,这没有多大意义。
那么我如何使用 PowerMock 从上面测试这个 toString() 方法?我更喜欢将 PowerMock 与 Mockito 一起使用,但如果这不可能,我可以使用 EasyMock 来代替。
【问题讨论】:
标签: java junit easymock mockito powermock