1

我有一些模型代码可以通过简单的方式调用数据库find()

@thing = Thing.find(id)

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

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

4

1 回答 1

0

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

于 2021-01-11T09:20:56.050 回答