0

我是 Play 的新用户,正在学习 ToDo List 示例(基于 Java 的初学者教程)。

我现在正在尝试使用页面对象模式( https://github.com/FluentLenium/FluentLenium#page-object-pattern )添加测试用例。

不幸的是,我最初尝试实现这种模式并不顺利。如果您想快速下载并使用它,我的整个系统都可以在 GitHub 上找到。这是我的测试类的链接,它显示了一个正在运行的测试用例(不使用页面对象模式)和一个尝试使用页面对象模式的失败测试用例:

https://github.com/philipmjohnson/playexample1/blob/master/test/IntegrationTest.java

这是我在 Play 控制台中运行测试用例时出现的错误):

[error] Test IntegrationTest.testWithPage failed: java.lang.NullPointerException
[error]     at play.test.Helpers.running(Helpers.java:426)
[error]     at IntegrationTest.testWithPage(IntegrationTest.java:34)
[error]     ...
[error] Caused by: java.lang.NullPointerException
[error]     at org.fluentlenium.core.Fluent.goTo(Fluent.java:223)
[error]     at org.fluentlenium.core.FluentPage.go(FluentPage.java:55)
[error]     at org.fluentlenium.core.Fluent.goTo(Fluent.java:204)
[error]     at IntegrationTest$2.invoke(IntegrationTest.java:37)
[error]     at IntegrationTest$2.invoke(IntegrationTest.java:34)
[error]     at play.test.Helpers.running(Helpers.java:424)

如何正确实现页面对象设计模式?

4

1 回答 1

2

那里的一些细节:

您必须构建页面并为其提供 webdriver,页面需要它来操作浏览器。

public ToDoListPage(WebDriver webDriver) {
    super(webDriver);
}

在你的测试中:

ToDoListPage todopage = new ToDoListPage(browser.getDriver());

此外,您的 TodoListPage 中不需要有 @Test 注释

查看拉取请求:修复

于 2013-03-22T08:56:55.423 回答