Php Laravel 5单元测试调用方法顺序

Php Laravel 5单元测试调用方法顺序,php,unit-testing,laravel,laravel-5,phpunit,Php,Unit Testing,Laravel,Laravel 5,Phpunit,Laravel5在单个类中调用测试用例的顺序是什么 它们是从上到下的吗?按字母顺序我可以指定订单吗 也就是说,我想从以下几点开始测试API调用: POST(创建订单), 获取(读取新创建的订单), 删除(删除该订单)。如果我可以作为3个独立的自动测试来执行,那就太好了,但我不知道它们是否总是按照特定的顺序执行。您不应该依赖于测试的顺序,而应该执行以下操作: 发出POST请求并断言POST已创建 手动创建订单,然后发出GET请求并断言已找到订单 手动创建订单,然后发出删除请求并断言订单已删除 数据

Laravel5在单个类中调用测试用例的顺序是什么

它们是从上到下的吗?按字母顺序我可以指定订单吗

也就是说,我想从以下几点开始测试API调用: POST(创建订单), 获取(读取新创建的订单),
删除(删除该订单)。如果我可以作为3个独立的自动测试来执行,那就太好了,但我不知道它们是否总是按照特定的顺序执行。

您不应该依赖于测试的顺序,而应该执行以下操作:

  • 发出POST请求并断言POST已创建
  • 手动创建订单,然后发出GET请求并断言已找到订单
  • 手动创建订单,然后发出删除请求并断言订单已删除
  • 数据不应在测试之间持续存在,请使用
    illumb\Foundation\Testing\DatabaseTransactions
    illumb\Foundation\Testing\DatabaseMigrations


    查看更多信息:

    您可以使用
    @dependens
    注释来确保一个测试一个接一个地运行,但是正如@scrubmx指出的,您的测试不应该依赖于执行顺序。否则,如果您的
    createOrder
    测试失败,则不会执行其余的测试。如果数据是由另一个测试用例隐式创建的,而不是在对其进行操作的测试用例中显式创建的,那么维护一个不断增长的测试套件也会变得更加困难,因为您要测试的数据会有越来越多的变体。

    看看这个,它并不完全管理测试的顺序,但它允许您的测试返回数据以在另一个测试中使用。我已经做了类似的事情:
    public function testOrder(){$clientOrderId=$this->order();$this->assertInternalType($string',$clientOrderId);$this->assertNotEmpty($clientOrderId);$this->OrderStatus($clientOrderId);$this->DeleteOrder($clientOrderId);}
    但我希望能够单独运行它们,而无需进行新的测试。