有没有办法用Play for Java“解析”html的各个部分?

时间:2014-05-23 14:09:48

标签: java testing playframework-2.0

我目前正在使用play测试页面渲染:

@Test
    public void renderUpdateUserPage() {
        Content html = update_user.render("Update User");
        assertThat(contentType(html)).isEqualTo("text/html");
        String htmlAsString = contentAsString(html);
        assertThat(htmlAsString).contains("Update User");
        assertThat(contentAsString(html)).contains("<input type=\"text\" placeholder=\"First Name\" class=\"input-large\" id=\"firstName\" name=\"firstName\">");
        assertThat(contentAsString(html)).contains("<input type=\"text\" placeholder=\"Last Name\" class=\"input-large\" id=\"lastName\" name=\"lastName\">");
        assertThat(contentAsString(html)).contains("<input type=\"text\" placeholder=\"Email Address\" class=\"input-large\" id=\"email\" name=\"email\">");
    }

正如您在代码中看到的那样,我只是将html复制到contains()中。我可以测试页面内容的更好方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为这种方法可能有点脆弱,因为即使很小的布局更改也会导致测试失败。我没有测试特定的DOM结构,而是尝试测试页面的行为,比如提交表单,看看会发生什么。有一个blog post about integrating Cucumber and Play,您可以将此作为测试Cucumber和Fluentlenium表单提交的起点。