【发布时间】:2015-12-10 07:51:34
【问题描述】:
简短版本:我的数据库中的表之间有很长的外键链,所有表都是必需的/不为空,这意味着我必须在工厂女孩的 7 个不同表中创建记录,在我不这样做的上下文中不需要它们中的大多数。有什么好的办法吗?
长版本:我正在为一家从事商品销售的公司构建应用程序。所以,例如。 Smiths Chips 打电话给他们说:“我们有一种新的‘夏日烧烤’风味,并希望在澳大利亚的这 200 家 Coles 商店中建立过道尽头的特色展示”。这家公司组织临时工在各自的商店执行这项工作。
命名法:
“工作” 是最重要的要求 - 例如“建造过道末端夏季烧烤展示”。一项工作有许多任务。
“任务”是员工在单个商店中执行的工作。
因此,Task 属于 Employee 和 Store。
长外键链为:Task > Store > Suburb > Postcode > Subregion > Region > State
在测试 Job 和 Task 模型时,我需要创建 Task,这意味着在这 6 个其他表中创建记录,我希望避免这样做。
【问题讨论】:
-
您需要创建任务还是直接存根?
-
在测试模型时,最好的做法是存根任何其他模型和关联。这将使您的测试更能抵抗变化,但不会降低有效性。
-
存根可以解决我的一些上下文问题,但不是全部。
标签: ruby-on-rails rspec factory-bot