私は現在ログインしているユーザーに関する詳細を取得しているconrtollerクラスを持っています。メソッド名は 'LoggedInUser()'です。このメソッドは一般的には完全に実行されていますが、特定のメソッドの単体テストケースを生成することはできません。AutowiredオブジェクトをモックしながらMockito.when()が正しく動作しない
私はMockitoを使用していますが、 'Mockito.when()'が正しく動作していません。 私はすべての関連する質問を行ったが、解決することはできませんでした。
以下は私がこれまで行ってきたことです。
Controller.java私はそれが再びインスタンス化された「校長」として動作しない場合がありますことを、別の記事で読んでいるのでコメント内の行が書き込まれ
@Service
@Transactional
Public class Controller implements someInterface {
private LoggedInUser getUser(HttpServletRequest request) {
principal = request.getUserPrincipal();
Authentication tk = (Authentication) principal;
//Authentication tk = (Authentication)(request.getUserPrincipal());
LoggedInUser user = (LoggedInUser) tk.getPrincipal();
return user;
}
。だから私はそれをバイパスしようとしましたが、うまくいきませんでした。
Test.java
@Mock
private HttpServletRequest httpServletRequest;
public void tes() {
//httpServletRequest = Mockito.mock(HttpServletRequest.class);
Principal principal= Mockito.mock(Principal.class);
Mockito.when(httpServletRequest.getUserPrincipal()).thenReturn(principal);
.......
.......
}
デバッグ中に、それはコントローラクラスにAutowiredだと私はrequest (object of HttpServletRequest)
の値を取得していますが、principal
は常にnullです。 ご協力いただければ幸いです!
コメントを解除 'TES(内側の1本のライン)あなたはモックする必要がある参照が割り当てられていない場合、' – ppasler
あなたのモックが影響していませんモックの価値とテストされたメソッドのコードを表示する必要があります。 – davidxxx
[mcve]を提供してください。 – Tom