Laravel 5 Unittest调用方法顺序

时间:2016-05-17 14:04:40

标签: php unit-testing laravel laravel-5 phpunit

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

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

意思是,我想从以下开始测试API调用: POST(创建订单), GET(阅读新创建的订单), 删除(删除该订单)。如果我可以做3个单独的自动测试,那就太好了,但我不知道,如果他们总是按照特定的顺序执行。

2 个答案:

答案 0 :(得分:2)

您不应该按照测试的顺序进行中继,而是执行以下操作:

  1. 发出POST请求并断言帖子已创建。
  2. 手动创建订单,然后发出GET请求并断言订单已找到
  3. 手动创建订单,然后发出DELETE请求并断言订单已删除。
  4. 数据不应在测试之间保留,请使用Illuminate\Foundation\Testing\DatabaseTransactionsIlluminate\Foundation\Testing\DatabaseMigrations

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

答案 1 :(得分:1)

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