Laravel 5.2 测试 DOM 已更改
Laravel 5.2 test DOM changed
我正在使用 Laravel 5.2,我的页面上有 ID 为 new-item
的按钮,当我点击它时,javascript 代码加载了一个远程 bootstrap 模式使用表单,并显示模态。
我想用 Laravel 测试 PHPUnit 的功能。我写了这个测试:
$this->visit('/');
->click('new-item');
->seeElement('.modal');
页面运行良好,但测试失败。我收到页面没有 .modal
元素的错误,它还向我显示了页面的 html。
但是 html 看起来像在将远程模式插入页面之前的原始页面。
那么如何在 javascript 更改 DOM 后强制测试刷新页面内容?
默认情况下 Laravel 使用 PHPUnit 和 PHPBrowser 进行测试。 PHPBrowser 不支持 Javascript。如果你想测试 javascript 你需要使用像 selenium 和 codeception 这样的东西。 Codeception 有一个内置的 Laravel 适配器,所以它仍然非常容易使用。我已经在许多应用程序中使用它并且效果非常好。
http://codeception.com/docs/modules/Laravel5
还有其他支持无头浏览器的选项javascript这只是一个选项。
我正在使用 Laravel 5.2,我的页面上有 ID 为 new-item
的按钮,当我点击它时,javascript 代码加载了一个远程 bootstrap 模式使用表单,并显示模态。
我想用 Laravel 测试 PHPUnit 的功能。我写了这个测试:
$this->visit('/');
->click('new-item');
->seeElement('.modal');
页面运行良好,但测试失败。我收到页面没有 .modal
元素的错误,它还向我显示了页面的 html。
但是 html 看起来像在将远程模式插入页面之前的原始页面。
那么如何在 javascript 更改 DOM 后强制测试刷新页面内容?
默认情况下 Laravel 使用 PHPUnit 和 PHPBrowser 进行测试。 PHPBrowser 不支持 Javascript。如果你想测试 javascript 你需要使用像 selenium 和 codeception 这样的东西。 Codeception 有一个内置的 Laravel 适配器,所以它仍然非常容易使用。我已经在许多应用程序中使用它并且效果非常好。
http://codeception.com/docs/modules/Laravel5
还有其他支持无头浏览器的选项javascript这只是一个选项。