2014-10-07 132 views
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); 
      } 
    ); 
} 

我怎樣才能測試的依賴注入控制器?有沒有其他方法我應該測試這個?

+0

答案您應該能夠與測試依賴手動創建你的控制器(例如'新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

回答