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

Laravel 5 Unittest call Method Order

Laravel 5 以什么顺序调用单个 class 中的测试用例?

他们是从上到下调用​​的吗?按字母顺序?我可以指定顺序吗?

意思是,我想测试 API 调用从: POST(创建订单), GET(读取新创建的订单), DELETE(删除该订单)。如果我可以将其作为 3 个单独的自动测试来执行,那就太好了,但我不知道它们是否会始终按特定顺序执行。

你不应该依赖测试的顺序,而应该这样做:

  1. 发出 POST 请求并断言 post 已创建。
  2. 手动创建订单,然后发出 GET 请求并断言已找到订单
  3. 手动创建订单,然后发出 DELETE 请求并断言订单已删除。

数据不应在测试之间保留,请使用 Illuminate\Foundation\Testing\DatabaseTransactionsIlluminate\Foundation\Testing\DatabaseMigrations

查看更多信息:https://laravel.com/docs/5.2/testing#resetting-the-database-after-each-test

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