使用Laravel测试时是否启用JS

Is JS enabled when testing with Laravel?

本文关键字:启用 JS 是否 Laravel 测试 使用      更新时间:2023-09-26

我使用Laravel测试来测试表单。

我试图使用$this->select('value','selectName')在选择上设置一个选项,但是这个选择是用以下脚本在页面上填充的:

<script>
    for(var i = 1940; i < 2020; i++){
         document.write('<option value="'+i+'">'+i+'</option>');
    }
</script>

但是当我运行测试时,我得到:

InvalidArgumentException: Input "year" cannot take "1992" as a value (possible values: ).

当我只是使选项与html标签,一切运行良好,所以我猜JS是未启用或解析后运行。

这是预期的行为吗?我能做些什么来测试它与JS启用?

由于JavaScript是一种客户端脚本语言,基本上是在运行时在浏览器中执行的,因此Laravel无法在测试中使用它。也就是说,laravel的一些扩展/驱动程序可以启用此功能。你可以查看Selenium.

这里有一个关于这个话题的好地方:https://laracasts.com/discuss/channels/testing/has-anyone-tried-laravel-integrated-package-in-laravel-52