我正在尝试为我的模板编写一些简单的单元测试。问题是模板使用的是helper.Form类。
@helper.form(action = routes.SecurityController.login()) {
@helper.inputText(loginForm("email"))
@helper.inputPassword(loginForm("password"))
}
因为我在嘲笑表单,所以抛出空指针异常。 这是(我的测试类的一部分):
@Mock
protected Form<User> userForm;
@Test
public void testLoginPage() {
Content html = views.html.login.render(userForm);
assertTrue(html.body().contains("Login to your Account"));
}
我不想模仿对已经模拟的表单的所有调用,而是希望能够创建类似于在控制器中完成的空表单
@inject
private FormFactory formFactory;
public Result showLoginPage() {
return ok(views.html.login.render(formFactory.form(User.class));
}
但我不能为我的生活,将FormFactory注入我的测试类。我尝试过的每一个解决方案都失败了,包括:
FormFactory formFactory = new GuiceInjectorBuilder().injector().instanceOf(FormFactory.class);
文档显示了我如何通过启动一个类似于this的fakeApplication来做到这一点,但是仅仅测试模板的内容就完全过分了。我正在尝试做什么?我觉得这是一个非常简单的概念,但找到解决方案却非常困难。
我正在使用 Play Framework 2.5.6