9
I署名スプリングMockMVCないときメソッドシグネチャにmockHttpServletRequestを注入
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public ModelAndView upload(HttpServletRequest request, HttpServletResponse response) {
String remoteAddress = request.getRemotedAddr();
auditService.logAddress(remoteAddress);
// do work...
return mav;
}
と一部スプリングMVCコントローラ・コードを継承していると私は私が必要試験
public void someTest() {
mockMvc().perform(fileUpload("/upload").file(FileFactory.stringContent("myFile")));
// do work...
verify(auditService.logAddress("123456"));
}
を行う春MockMvc試験を持って考えるとアップロードコントローラメソッドに渡されるHttpServletRequestオブジェクトのリモートアドレスを "12345"に設定すると、テストでauditServiceの呼び出しを確認できます。
私はsetRemoteAddrをMockHttpServletRequestオブジェクトを作成して呼び出すことができます()メソッドが、mockMvc()メソッドの呼び出しに、このモックリクエストオブジェクトを渡す方法?
私はこれを試しましたが、request.getRemoteAddr()は127.0.0.1を返します。これはデフォルトの動作だと思います。 : –
'setRemoteAddr'が呼び出されていない場合は、あなたの解決策/設定/テストコードに何か問題があるはずです... –
確かにうまくいきます。今はJava 8ラムダを使用しています。 – objectuser