【发布时间】:2018-01-29 10:54:17
【问题描述】:
你好,我正在 laravel 5.5 中测试一个使用 Mysql 作为数据库和 DatabaseTransactions 的 api。
假设我有一个模型Team,它可能是active 或inactive,我想测试获得一个不活跃的团队。
$team = Team::inactive()->inRandomOrder()->first();
$response = $this->json('GET',route('teams.show',$team->id);
$reponse ->assertStatus(404);
如果我的团队中没有不活跃的团队,那么这段代码就有问题 假种子数据库。 那么这里最好的方法是什么?
1)我是否应该确保我为一个不活跃的团队播种数据库?
2)我是否应该在第一行之后做出断言,如果$team==null 我为了测试目的而组建团队inactive。
3)在测试期间使用工厂并创建假数据?
我暂时避免使用 3 的唯一原因是,在与外键更复杂的关系中,我必须播种 3-4 个表。
【问题讨论】: