質問: spy(HttpServletRequest.class); request.setAttribute("hoge", "fuga"); System.out.println(request.getAttribute("hoge")); } ``` 私の認識では、spyを使用すると、メソッドをモックしない限り元のメソッドの実装がそのまま呼び出されるため、上記のコードでいうとSystem.out.println()により"fuga"の出力を期待しております。 しかし実際にはnullが表示されます。 どこかにミスがございますか? 考えられ得るのは私のspyに対する認識ミスか、もしくはsetAttribute()は正しく呼び出されているが、その内部実装を理解できていなからでしょうか。 お手数おかけいたしますが、ご回答いただけますと幸いです。
回答: HttpServletRequest はインタフェースであり実装ではありません。 spring-test の MockHttpServletRequest 等を利用するか 自前で MockHttpServletRequest を作成しましょう。 1. 何もしないメソッド 2. ull を返すメソッド が実装されます。