【问题标题】:Using Ajax Request with PHPUnit and Laravel testing在 PHPUnit 和 Laravel 测试中使用 Ajax 请求
【发布时间】:2017-05-07 01:02:27
【问题描述】:

我正在使用 phpunit 在 Laravel 中进行测试。我运行一个测试,将它插入一个文本框并按下一个按钮。然后,有一个 Ajax Post 将信息发送到服务器并返回响应。如果我返回的字符串有以下代码,在测试中我应该得到正确的字符串吗?

我有以下控制器:

class MyController extends Controller{
    public static function createNewComplaintStep_2(){
          return "error";
    }
}

路线:

Route::post('/createNewComplaint_Step2', 'MyController@createNewComplaintStep_2');

带有表单和ajax方法的视图:

<form id="formToSubmit" data-value="createNewComplaint_Step2" class="form-horizontal">
                {!! csrf_field() !!}
                <div class="form-group">
                    <label class="col-md-4 control-label">Customer:</label>
                    <div class="col-md-3">
                        <input class="form-control" name="customer_name" required>                            
                    </div>
                 </div>
         <button type="submit" class="btn btn-success" name="subBTN"\>
         </form>
(...)
<script>
$( '#formToSubmit' ).on( 'submit', function(e) {
    var href = $(this).data('value');   
    e.preventDefault();     
    $.ajax({
        type: "POST",
        url: href,
        data: $(this).serialize(),
        success: function( msg ) {
            $("#container-fluid").html(msg);
            $('.se-pre-con').hide();
        }
    });
});
</script>

phpunit 测试:

$this->visit('/createNew')
            ->type('NAME', 'customer_name')
            ->press('subBTN')
            ->see('error');

有什么问题吗?因为如果我运行代码,我会得到错误

断言页面包含 HTML [错误] 失败。请检查以上内容

上面的内容就是上面的视图。似乎 ajax 请求不适用于 phpunit。 有什么建议吗??

提前致谢!

【问题讨论】:

    标签: php jquery ajax laravel phpunit


    【解决方案1】:

    您正在使用 jquery Ajax,它是一种 客户端 脚本 语言,基本上在 runtime Laravel 不能在测试中使用它。

    这里你的 Ajax 甚至没有执行,所以你怎么能得到导致这个错误出现的字符串。

    但您可以尝试一些适用于 laravel 的扩展程序/驱动程序来启用此功能。
    只需查看 Selenium:- https://laracasts.com/discuss/channels/testing/has-anyone-tried-laravel-integrated-package-in-laravel-52

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2015-01-24
      • 1970-01-01
      • 2010-11-20
      • 2018-10-23
      相关资源
      最近更新 更多