代码之家  ›  专栏  ›  技术社区  ›  Dionisis K

在laravel中针对MySQL进行测试

  •  0
  • Dionisis K  · 技术社区  · 7 年前

    你好,我正在测试 laravel 5.5 api使用 Mysql 作为数据库和 数据库事务 .

    假设我有一个模型 Team 可能是 active inactive 我想测试一个不活跃的团队。

    $team = Team::inactive()->inRandomOrder()->first();
    $response = $this->json('GET',route('teams.show',$team->id); 
    $reponse ->assertStatus(404);
    

    如果我的 假种子数据库。 那么,这里最好的方法是什么?

    1) 我是否应该确保在数据库中加入非活动团队?
    2) 我是否应该在第一行之后做出断言,如果 $team==null 我组建团队 不活跃的 用于测试目的。
    3) 在测试期间使用factory并创建虚假数据?

    我暂时避免使用3的唯一原因是,在与外键的更复杂关系中,我必须为3-4个表播种。

    1 回复  |  直到 3 年前
        1
  •  0
  •   user320487 user320487    7 年前

    您应该独立测试每个案例,如果它们能够实际发生。如果出现不存在非活动团队的情况,请对此进行测试。如果根本不存在眼泪,也写一个测试。

    在测试之前运行迁移和种子设定是很常见的。Laravel提供了一些有用的实用程序来实现这一点,以及在拆卸过程中回滚。尽可能使您的测试原子化,并相互隔离。