Laravel 5单元测试调用方法顺序
Laravel 5 Unittest call Method Order
Laravel 5 以什么顺序调用单个 class 中的测试用例?
他们是从上到下调用的吗?按字母顺序?我可以指定顺序吗?
意思是,我想测试 API 调用从:
POST(创建订单),
GET(读取新创建的订单),
DELETE(删除该订单)。如果我可以将其作为 3 个单独的自动测试来执行,那就太好了,但我不知道它们是否会始终按特定顺序执行。
你不应该依赖测试的顺序,而应该这样做:
- 发出 POST 请求并断言 post 已创建。
- 手动创建订单,然后发出 GET 请求并断言已找到订单
- 手动创建订单,然后发出 DELETE 请求并断言订单已删除。
数据不应在测试之间保留,请使用 Illuminate\Foundation\Testing\DatabaseTransactions
或 Illuminate\Foundation\Testing\DatabaseMigrations
。
查看更多信息:https://laravel.com/docs/5.2/testing#resetting-the-database-after-each-test
您可以使用 @depends
注释来确保一个测试一个接一个地运行,但正如@scrubmx 指出的那样,您的测试不应依赖于执行顺序。否则,如果您的 createOrder
测试失败,测试的其余部分将不会执行。如果数据是由另一个测试用例隐式创建的,而不是在对其进行操作的测试用例中显式创建的,那么维护不断增长的测试套件也更加困难,因为您将拥有越来越多的要测试的数据变体。
Laravel 5 以什么顺序调用单个 class 中的测试用例?
他们是从上到下调用的吗?按字母顺序?我可以指定顺序吗?
意思是,我想测试 API 调用从: POST(创建订单), GET(读取新创建的订单), DELETE(删除该订单)。如果我可以将其作为 3 个单独的自动测试来执行,那就太好了,但我不知道它们是否会始终按特定顺序执行。
你不应该依赖测试的顺序,而应该这样做:
- 发出 POST 请求并断言 post 已创建。
- 手动创建订单,然后发出 GET 请求并断言已找到订单
- 手动创建订单,然后发出 DELETE 请求并断言订单已删除。
数据不应在测试之间保留,请使用 Illuminate\Foundation\Testing\DatabaseTransactions
或 Illuminate\Foundation\Testing\DatabaseMigrations
。
查看更多信息:https://laravel.com/docs/5.2/testing#resetting-the-database-after-each-test
您可以使用 @depends
注释来确保一个测试一个接一个地运行,但正如@scrubmx 指出的那样,您的测试不应依赖于执行顺序。否则,如果您的 createOrder
测试失败,测试的其余部分将不会执行。如果数据是由另一个测试用例隐式创建的,而不是在对其进行操作的测试用例中显式创建的,那么维护不断增长的测试套件也更加困难,因为您将拥有越来越多的要测试的数据变体。