在所有其他单元测试之前在 Laravel 中运行特定的单元测试 (phpunit)

Pet*_*leg 2 testing phpunit laravel

我正忙于学习 Laravel 的单元测试,我有一个问题。我希望在运行其他所有其他测试之前先运行一个与身份验证有关的测试。这能实现吗?

到目前为止,我有 4 个测试类,其中有一些方法。

Jon*_*hon 5

在 PHPUnit 中,每个测试都在一个全新的环境中运行,所有设置和拆卸都是针对每个测试完成的,因此顺序并不重要。如果您尝试将身份验证作为其他测试的一部分,例如您正在测试您的 API 并且您需要您的测试来作为用户进行身份验证,Laravel 的测试工具有方法和帮助程序可以让您做到这一点。

您需要按照setUp测试用例的方法完成所有设置。该方法在每个测试运行之前执行。同样,该tearDown方法在每一项测试完成后运行:

public class YourTest extends TestCase
{
    protected function setUp()
    {
        // Do your setup here
    }

    protected function tearDown()
    {
        // Your cleanup here, if you're using Mockery, this 
        // is a good place to call Mockery::close();
    }

    public function testSomething()
    {
        // Your test code, you can assume that setUp has 
        // already run and you're ready to go.
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个方法来完成所有设置并在每个测试开始时调用它。