您好,我正在测试
laravel 5.5
api使用
Mysql
作为数据库和
DatabaseTransactions
..。
假设我有一个模型
这可能是
或者
我想测试一下是否有一个不活跃的团队。
$team = Team::inactive()->inRandomOrder()->first();
$response = $this->json('GET',route('teams.show',$team->id);
$reponse ->assertStatus(404);如果我的假种子数据库中没有不活跃的团队,这段代码就有问题。那么这里最好的方法是什么呢?
1)我应该确保我的数据库中有一个非活动的团队吗?
2)我是否应该在第一行之后进行断言,如果
我组建团队
为了测试的目的。
3)在测试过程中使用工厂并创建假数据?
我暂时避免使用3的唯一原因是,在与外键的更复杂的关系中,我必须为3-4个表设定种子。
发布于 2018-01-29 19:27:27
如果它们能够真实地发生,那么您应该独立地测试每个案例。如果可能出现不存在非活动团队的情况,请对其进行测试。如果根本不存在撕裂,那么也为它写一个测试。
在测试之前,运行迁移和播种是很常见的。Laravel提供了一些有用的实用程序来实现这一点,以及在拆卸过程中回滚。让你的测试尽可能地保持原子性和相互隔离。
https://stackoverflow.com/questions/48499539
复制相似问题