我希望能够在运行嵌入式Tomcat的JUnit测试中模拟webapp使用的类。
public interface Foo {
void bar();
}
@RunWith(JMockit.class)
public class IntegrationTest {
@Test
public void mockingFoo(@Capturing final Foo foo)
throws ServletException, LifecycleException {
new Expectations() {{
foo.bar(); result = new RuntimeException();
}};
final Tomcat tomcat = new Tomcat();
// MyApp will invoke a Foo instance
tomcat.addWebapp("/MyApp", "/path/to/MyApp.war");
tomcat.start();
/*
invoke the webapp (via Selenium, for example)
The call to Foo::bar in the webapp should throw the runtime exception
*/
tomcat.stop();
}
}
可以做些什么,以便通过JMockit模拟webapp中的Foo
个实例?
更新 - 20150821
我还不知道问题的答案。但是,我设法mock classes in a webapp running within Jetty。