作者:元菱淑亚禎盈 | 来源:互联网 | 2023-09-23 05:54
我了解到我们可以使用带有PowerMock的核心java库来模拟静态方法吗?Jmockit.Want要了解它是如何在内部简单地做到的?我的理解:–我们在测试用例本身中定义了mock
我了解到我们可以使用带有PowerMock的核心java库来模拟静态方法吗?Jmockit.Want要了解它是如何在内部简单地做到的?
我的理解: – 我们在测试用例本身中定义了mock类(尽管在每个框架中都有不同的方法来创建模拟类,比如在Jmockit中使用期望语法),这些框架必须定义他们必须寻找的自定义类加载器测试用例本身里面的那个类定义.这是一个猜测.不确定它是否正确?但即使我是对的,classloader hirerchy的首选是boootstraploader然后是applicationclassloader而不是customerclassloader.那么它如何从customerclassloader而不是applicationclassloader中选择呢?
解决方法:
JMockit和其他更新的框架基于Java 1.5 Instrumentation框架.这允许您重新定义私有,静态和最终方法.甚至可以重新定义no-arg构造函数.
这些框架使用Java代理,Java代理是一个可插入的库,它运行嵌入在JVM中并拦截类加载过程,可以帮助检测类的字节码.
您可以在深度和http://jmockit.googlecode.com/svn/trunk/www/about.html中检查Java检测