0
說我有一齣戲全局文件...Java Play2 Spring測試 - 測試上下文依賴注入?
public class Global extends GlobalSettings {
private ApplicationContext ctx;
@Override
public void onStart(Application app) {
ctx = new ClassPathXmlApplicationContext("context/components.xml");
}
@Override
public <A> A getControllerInstance(Class<A> clazz) {
return ctx.getBean(clazz);
}
}
而且我有一個這樣的測試...
@Test
public void itShouldFailOnMissingFields() throws Exception {
running(fakeApplication(),() -> {
Map<String, String> body = new HashMap<String, String>();
body.put("email", "[email protected]");
body.put("password", "ro");
FakeRequest request = new FakeRequest(POST, "/v1/profile")
.withFormUrlEncodedBody(body);
Result result = route(request);
assertEquals(status(result), 400);
}
);
}
我怎樣才能測試的依賴注入控制器?有沒有其他方法我應該測試這個?
答案您應該能夠與測試依賴手動創建你的控制器(例如'新myController的(新TestDep())'然後調用正確的方法),或者使用[Play.isTest](https://www.playframework.com/documentation/2.3.x/api/java/play/Play.html#isTest())檢查您是否正在測試模式下運行並且然後初始化一個不同的上下文 – Salem 2014-10-08 20:24:50