【问题标题】:I am trying TDD(Test Driven Development) using Laravel8 inbuilt PHPUnit我正在尝试使用 Laravel8 内置 PHPUnit 的 TDD(测试驱动开发)
【发布时间】:2021-12-30 01:58:56
【问题描述】:

我收到此错误:

调用未定义的方法Tests\Feature\ExampleTest::visit()

在运行我的测试用例时。我对 TDD 有点陌生。

这是我的示例测试代码

<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class ExampleTest extends TestCase
{

    /**
    * A basic test example.
    *
    * @return void
    */

    public function test_example()
    {
        $response = $this->visit('/')->see('Laravel');
        $response->assertStatus(200);
    }

}

从我用来学习 TDD 的视频教程中,上面的代码运行良好,没有任何问题,但是在我这边运行代码时,我遇到了如下所示的错误:

• 测试\Feature\ExampleTest > 示例 错误

调用未定义的方法Tests\Feature\ExampleTest::visit()

我目前正在运行Laravel 8.6PHPUnit 9.510

非常欢迎任何关于我如何解决此问题的想法。

【问题讨论】:

  • PHPUnit 4.8 和 9.5.10 之间会不会有一些重大变化,因为上面的代码在 PHPUnit 4.8 中运行良好

标签: php laravel phpunit tdd


【解决方案1】:

看起来你正在混合 Laravel 的内置浏览器测试方法 (Dusk) - 比如你在上面使用的 visit() - 与 unit testing and feature testing 方法。

由于您在 Tests\Feature 命名空间中,因此您需要遵循单元和功能测试指南,相当于:

public function test_example()
    {
        $response = $this->get('/');
        $response->assertStatus(200);
    }

【讨论】:

  • 看起来 OP 正在尝试使用来自 github.com/laravel/browser-kit-testing 的方法,这些方法是旧的 Laravel(5.3 之前)浏览器测试方法
  • 谢谢。有效。这就是问题
猜你喜欢
  • 2011-02-11
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
相关资源
最近更新 更多