rap*_*2-h 2 php unit-testing laravel laravel-5 laravel-5.4
DatabaseTransactions
DatabaseMigrations
在 Laravel 测试中,trait 似乎比trait更快。这是正常的,因为每次测试DatabaseMigrations
都会再次运行所有迁移过程(+回滚),并且DatabaseTransactions
只是取消最后一个事务。DatabaseTransactions
那么选择特质似乎是明智的。
不过,DatabaseMigrations
确实存在。那么,使用它(而不是使用DatabaseTransactions
)有什么好处吗?
可能有许多优点和缺点,但对我来说,DatabaseMigrations 的两个主要好处是:
1)您不需要维护测试数据库。如果您使用 DatabaseTransactions,您需要确保您的测试数据库架构与您的正常数据库架构保持同步。做起来并不难,只是一个额外的事情要跟踪。
2) 使用 DatabaseMigrations 允许您使用内存中的 SQLite DB 进行测试,它比 MySQL 或 Postgres 更快、更轻量级。
总的来说,我认为没有正确或错误的答案 - 我认为这只是取决于偏好。