【发布时间】:2021-09-07 07:15:24
【问题描述】:
我确实想为我们的项目编写一些功能测试。 Techstack:Play Framework 1.5、Java 16、Junit 3。
我找到了以下文档: test - 1.5.x security - 1.5.x
所以控制器看起来像这样。
@AllowFeature(Feature.SEARCH_BOX)
public static void search(String term) {
//implementation omitted
TablePage<MyAwesomeType> page = search(term);
render(..., page, term);
}
我的测试看起来像这样
public class SearchTest extends FunctionalTest {
@Test
public void search_withResults() {
String term = "ABC";
Http.Response response = GET("/foo/search?term=" + term);
assertStatus(302, response);
assertThat(renderArgs("page"), is(notNullValue()));
TablePage<MyAwesomeType> page = (TablePage<MyAwesomeType>) renderArgs("page");
assertTrue(page.getTotalRecords() >= 1);
}
}
但是,TablePage<MyAwesomeType> page 确实不应该是 null,我无法使用调试器进入控制器方法。所以看起来控制器方法search(...)根本没有被调用。
响应代码是302 - Found,但我认为这可能是游戏建议它找到了路径/foo/search
我的猜测是我需要设置一些UserContext 或发送authenticityToken 连同请求。所以play可以检查需要的功能@AllowFeature(Feature.A_SEARCH_BOX)。
有人知道我将如何设置这样的功能测试吗?
感谢任何帮助。谢谢!
【问题讨论】:
标签: java playframework-1.x junit3