【问题标题】:Laravel: unit test with click functionLaravel:带有点击功能的单元测试
【发布时间】:2018-08-07 11:38:48
【问题描述】:

我正在使用 laravel 5.6,目前正在编写测试。

我想在我的单元/功能测试中执行这样的操作

$this->actingAs( $user)->visit('/')
                       ->click('my_button');

但点击/访问功能在默认测试中不可用。它们仅在使用Dusk时可用

但是Dusk需要更多时间运行,是否可以在phpunit运行的默认单元测试中带回click之类的一些功能?

我看到this package 正在“恢复”这些功能,但需要吗?或者我应该简单地使用Dusk 运行它以避免进一步的问题?

【问题讨论】:

    标签: laravel unit-testing testing


    【解决方案1】:

    PHPUnit 应该在 Laravel 中开箱即用。

    您只是运行它们与使用 Dusk 时不同。

    php artisan make:test UserTest
    

    使用它来创建一个新的测试,然后使用以下内容:

    class ExampleTest extends TestCase
    {
    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->actingAs( $user)->visit('/')
                       ->click('my_button');
    }
    } 
    

    另外,请检查您的项目中是否设置了 phpunit.xml。

    【讨论】:

    • 我这样做了,但是当我运行测试时,phpunit 告诉我Error: Call to undefined method Tests\Feature\ExampleTest::visit()
    • 只记得5.4以上没有访问功能。如果您想使用旧功能,您可以安装浏览器套件。
    • 作曲家需要 laravel/browser-kit-testing
    • 是的。这就是我发布这个问题的原因。看其他替代品。有吗?还是应该直接迁移到 Dusk?
    • 就像我说的你可以使用浏览器工具包,它应该会带回“一些”旧功能,但我建议迁移到 Dusk,因为它目前受支持。
    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2019-11-28
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多