問題タブ [springmockito]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1072 参照

spring-boot - @WebMvcTest のサービス層で Autowired Bean をモックする方法

Spring ブート gradle アプリで REST API をテストしています。@MockBean を使用してモックされたサービスが null を返しています。このモックされたサービスは、サービス クラスに Autowired の Bean がある場合に null を返します (コンストラクター インジェクションを使用しました)。

これがサンプルコードです(コンパイルされていません。理解のためだけです)

このテストを実行すると、次の出力が得られます (サービスが別の Bean を必要としない場合、期待される出力が得られます)

この応答により、.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)); という行で問題に直面しています。また、応答本文をチェックするとき(本文もnullであるため)

問題を再現するためのサンプル プロジェクトはこちら

0 投票する
1 に答える
140 参照

java - static void メソッドに doNothing() を実装するには?

1 つの static void メソッドをモックしようとしています。PowerMock を試しましたが、常に NullPointer 例外が発生します。

以下の呼び出しをモックしようとしています -

そして、メインクラスは -

私のテストクラスでこのように呼び出しをモックしようとしています -

また、SampleClass.class はコードの一部ではないことに注意してください。この外部クラスをコード ベースにインポートして、何らかのタスクを実行しました。

0 投票する
3 に答える
5520 参照

java - @InjectMocks コンストラクターとセッターによって @MockBean を注入すると、正しく動作しない

@RunWith(SpringJUnit4ClassRunner.class) ゲッターとコンストラクター注入を使用してクラスのテストケースを作成しようとしました。@MockBeanセッター注入、@Mockコンストラクター注入、@RunWith(SpringJUnit4ClassRunner.class)およびMockitoAnnotations.initMocks(this);Bean インジェクションを使用する場合。MockitoAnnotations.initMocks(this);コンストラクターインジェクションが機能しないとコメントした場合。これで、すべての Bean が完全に注入されましたが、@Mockbeans(Contructor 注入された) Bean は、呼び出されたときに適切に機能しないメソッドをモックしました。

私のテストクラスは

インジェクションは正しく機能しています。問題は、私が使用している Bean のモックされたメソッドに属してい@Mockます。mockB.getValue()mockC.getValue()nullmockA.getValue()

0 投票する
1 に答える
498 参照

java - Spring MVC - @WebMvcTest を使用してコントローラーをテストするときの @EnableGlobalMethodSecurity でのエラー 404

Spring プロジェクトに単体テストを追加しようとしています(ところで、統合テストは正常に動作します) が、コントローラーがインターフェースを実装する場合に (JSR-250 アノテーションを使用して)Controllers構成を追加すると、非常に奇妙な動作が発生します (@EnableGlobalMethodSecurityどのインターフェースでも)ControllerSpringアプリケーションコンテキストには「リクエストハンドラー」として含まれていません(メソッドで確認しorg.springframework.web.servlet.handler.AbstractHandlerMethodMapping.processCandidateBean(String beanName)ました:)、つまり、コントローラーで定義されたリクエストマッピング(@PostMapping、...)は潜在的な場所として登録されていませんが、インターフェイスを削除すると、コントローラとパスが問題なく見つかります。

これは、単純なインターフェイスを備えた私のコントローラー (簡略化)MyInterfaceです。

そして、これは Test クラスです (構成クラスを削除すると、@EnableGlobalMethodSecurityすべて正常に動作します):

何が起こっているのかわかりません。注釈 JSR-250 (@RollesAllowed) に基づいたセキュリティを備えたコントローラーでの単体テストの例を見つけようとしましたが、有用なものは何も見つかりませんでした。 me) バグですが、よくわからないので、どんな助けでも大歓迎です。

ライブラリのバージョン:

  • スプリング ブート バージョン: 2.2.2
  • スプリングコア: 5.2.1
  • モッキートコア: 3.1.0