代码之家  ›  专栏  ›  技术社区  ›  RedBassett

Ruby on Rails-在测试中理解数据库依赖关系

  •  0
  • RedBassett  · 技术社区  · 4 年前

    我有一些模型代码,可以用一个简单的 find() :

    @thing = Thing.find(id)
    

    我在数据库中为测试环境播种了数据。如果我在测试中打开控制台( rails c -e test ),我能跑 Thing.find(1) 并且可以很好地获得结果,但是当我运行调用上述方法的测试时,它报告说找不到id为的记录 1 .

    我想我误解了测试种子数据和对该数据库运行的测试之间的关系。为什么我在测试数据库中看到种子,但测试没有?

    0 回复  |  直到 4 年前
        1
  •  0
  •   bashford7    4 年前

    一种更传统的方法是创建夹具(或工厂,如果使用FactoryBot),并在测试设置中调用这些工厂。正如前面的答案所说,硬编码测试ID可能会返回 RecordNotFound 由于自动递增。

    推荐文章