0

Playに基づいたアプリで!フレームワーク (2.0、Java) コントローラーをテストするときに、サード パーティの API をモックしたいと考えています。これには Mockito を選びました。Play に組み込みのモック機能が見つからなかったからです。

私はこのようなものを持っています:

@Test
public void someTest() {
  ThirdParty thirdParty = mock(ThirdParty.class);
  when(thirdParty.someUnwantedMethod()).thenReturn("foo");

  running(fakeApplication(), new Runnable() {
    public void run() {
      Result result = callAction(controllers.routes.ref.MyController.doImportantStuff());
      verify(thirdParty.someUnwantedMethod()); // Verify that method in mock/API is called
      assertThat(contentAsString(result)).contains("foo");
    }
  });
}

(コントローラーは、テスト時に代わりにモックを使用する必要があるThirdPartyクラスのインスタンスで「someUnwantedMethod()」を呼び出します)

コントローラーにモックを取得させるにはどうすればよいですか?

4

1 に答える 1

1
  1. MyController に静的な setThirdParty メソッドを導入する
  2. テストでは、「callAction」の前に MyController.setThirdParty(thirdParty) を呼び出します

これについてプレイ固有のものは何もありません

于 2012-10-11T09:23:35.147 に答える