如何在laravel dusk中测试jquery脚本

丹尼尤尼斯

我试图在 Laravel dusk 中测试一个被点击的链接,该链接调用 AJAX JS 脚本,该脚本写入数据库并更改链接的文本。该链接是一个社交媒体 Like 链接,点击后会将文本更改为 You like this。

测试代码

$user = factory(User::class)->create();
        factory(Post::class)->create();

        $this->browse(function ($browser) use ($user) {
            $browser->loginAs($user)
                ->visit('/dashboard')
                ->clickLink('Like', 'a');

            $test = $browser->script('return $(".like").text();');
            $broswer->assertSee('You like this');```


JS code executed

$('.like').on('click', function(event) {
        event.preventDefault();
        // Get the parent article node
        var parent = getClosest(event.target, 'article');
        var postId = parseInt(parent.dataset['postid']);
        var parentLike = event.target.parentNode;

        // console.log(event.target.parentNode.classList);
        if (typeof postId == 'number' && postId > 0) {
            $.ajax({
                    method: 'POST',
                    url: route('like'),
                    dataType: "json",
                    data: {
                        postId: postId,
                        _token: $('meta[name="csrf-token"]').attr('content')
                    }
                })
                .done(function(data) {
                    var likeText = updateLikeText(data.message, data.numLikes, parentLike);
                    event.target.text = likeText;
                });
        }
    });

The link text should change to You Like this but in the test code, the text doesn't change. Accessing the site through the browser and clicking on the link manually works file.  How do I tell dusk to execute the JS script
乔纳斯·施陶登迈尔

您的测试不考虑 AJAX 请求的执行时间。

jQuery 具有指示 AJAX 请求是否处于活动状态的属性。

您可以使用它来等待请求完成,然后再测试链接文本:

$browser->loginAs($user)
    ->visit('/dashboard')
    ->clickLink('Like', 'a');

$browser->waitUntil('!$.active');

$browser->assertSeeIn('.like', 'You like this');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel中测试DELETE API?

来自分类Dev

如何在Laravel中测试接口的实现

来自分类Dev

如何在Laravel中运行异步脚本?

来自分类Dev

如何在Laravel测试中禁用选定的中间件

来自分类Dev

如何在Laravel 5.2中测试文件上传

来自分类Dev

如何在Laravel 4中测试邮件外观

来自分类Dev

如何在PHP和Laravel中测试MySQL连接?

来自分类Dev

如何在PHPUnit测试中覆盖Laravel的异常处理程序?

来自分类Dev

如何在laravel测试用例中模拟xmlHttpRequests?

来自分类Dev

如何在Laravel 5中测试表单请求规则?

来自分类Dev

如何在Laravel测试中获取标头值

来自分类Dev

如何在Laravel测试中创建模拟模型

来自分类Dev

如何在Laravel 4中测试邮件外观

来自分类Dev

如何在laravel测试用例中模拟xmlHttpRequests?

来自分类Dev

如何在邮递员中测试laravel模型关系

来自分类Dev

如何在Laravel Envoy脚本中设置密码?

来自分类Dev

如何在laravel中的特定模板上加载脚本?

来自分类Dev

如何在JUnit测试中运行Spring Shell脚本

来自分类Dev

如何在单元测试用例中退出脚本

来自分类Dev

如何在Unity测试脚本中触发OnMouseOver / OnMouseExit?

来自分类Dev

如何在bash脚本中测试链接是否正常

来自分类Dev

如何在Shell脚本中测试未知命令?

来自分类Dev

如何在测试脚本中从项目中加载模块?

来自分类Dev

Laravel Dusk 测试失败时发送邮件

来自分类Dev

如何在jQuery上laravel加密

来自分类Dev

如何在laravel中安装PHPExcel库?

来自分类Dev

如何在Laravel中处理日期输入

来自分类Dev

如何在Laravel中模拟Cache :: remember

来自分类Dev

如何在Laravel 5中调用模型?

Related 相关文章

热门标签

归档