Minitest:table 使用 STI 时为空

Minitest: table empty when using STI

我有一个 table 继承数据模型,其中 CityPage < Destination。这很好用。

现在我添加了第二种类型 CountryPage < Destination,我的测试失败了。具体来说,CityPage.all returns 一个空的结果,即使我有 CityPage 个固定装置(之前没有改变并且工作得很好)。

我做错了什么?为什么我的测试数据没有生成?

当您的 STI 具有多个子模型时,您需要使用一个以父模型命名的夹具文件,并使用 type 属性 区分各个夹具(即 STI 的作用在引擎盖下)。所以就我而言,我需要 /test/fixtures/destinations.yml,而不是 /test/fixtures/{city,country}_pages.yml

简短的谷歌搜索表明这与 Minitest 在测试运行后清除数据库有关 - 请参阅下面的评论。