コントローラーに依存関係を注入するために、Guice でプレイ フレームワーク 2.1.4 を使用しています。
私のテストでは、 を呼び出したいと思いますHelpers.callAction
。彼らcontrollers.routes.ref.Mycontroller
は静的ではないので、私の行動については知りません。
HandlerRef
どういうわけかそれを渡す方法はありcallAction
ますか?
ありがとう
コントローラーに依存関係を注入するために、Guice でプレイ フレームワーク 2.1.4 を使用しています。
私のテストでは、 を呼び出したいと思いますHelpers.callAction
。彼らcontrollers.routes.ref.Mycontroller
は静的ではないので、私の行動については知りません。
HandlerRef
どういうわけかそれを渡す方法はありcallAction
ますか?
ありがとう
Jukito https://code.google.com/p/jukito/を使用することになります
クリーンアップする必要があります (そのための独自のヘルパーを作成できます) が、基本的な考え方は次のとおりです。
@RunWith(JukitoRunner.class)
public class AuthenticationTest {
@Inject
private Authentication authentication;
private String username = "username";
private String password = "password";
@Before
public void setupMocks(UserDao mockedUserDao) throws RecordNotFoundException {
ObjectNode json = Json.newObject();
json.put("username", username);
json.put("password", password);
User mockedUser = mock(User.class);
when(mockedUser.getEmail()).thenReturn("email@test.com");
Http.RequestBody mockedBody = mock(Http.RequestBody.class);
when(mockedBody.asJson()).thenReturn(json);
Http.Request mockedRequest = mock(Http.Request.class);
when(mockedRequest.body()).thenReturn(mockedBody);
when(mockedUserDao.findByEmailAndPassword(anyString(), anyString())).thenReturn(mockedUser);
Http.Context.current.set(new Http.Context((long) 1, mock(play.api.mvc.RequestHeader.class),
mockedRequest, new HashMap<String, String>(), new HashMap<String, String>(),
new HashMap<String, Object>()));
}
@Test
public void loginTest(UserDao mockedUserDao) throws RecordNotFoundException {
//Arrange
FakeApplication app = Helpers.fakeApplication();
start(app);
ObjectNode json = Json.newObject();
json.put("username", username);
json.put("password", password);
//act
authentication.login();
stop(app);
//Assert
verify(mockedUserDao).findByEmailAndPassword(anyString(), anyString());
assertEquals(200, status(result));
}
}