RubyonRails-在测试中理解数据库依赖关系



我有一些模型代码,它使用简单的find():调用数据库

@thing = Thing.find(id)

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

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

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

最新更新