我在集成测试中使用 ShrinkWrap 启动 Jetty 服务器。
问题:
当我启动我的测试码头服务器而不是制作我的控制器模型时 - 模型不起作用!我建议原因是不同的类加载器:JMockit - AppClassLoader,Jetty - WebAppClassLoader。
问题:
如何使嘲笑工作正常?
PS 我已经用谷歌搜索了-javaagent:jmockit.jar选项可能会有所帮助。但事实并非如此。基于1.7 jdk的maven项目有必要吗?
添加:
我写了演示来说明我的问题。您可以通过参考找到它。
关于我的演示:
除了十个代码之外,它与那些项目相同。我只添加了 JMockit 和一个模拟来说明问题。
您应该看到JettyDeploymentIntegrationUnitTestCase.requestWebapp方法:在这些方法中,我们制作了不起作用的模拟。
您可以检查 Jetty & JMockit 通过兄弟类加载器加载类,因此 JMockit 根本看不到 Jetty 的类
URLClassLoader
|
|-Launcher$AppClassLoader
|-WebAppClassLoader