到目前为止,我只使用 rspec 和工厂,而不是固定装置或种子数据。但是现在我需要一个(静态)优惠券表,其中包含十几个配置数据记录,以便在运行我的集成测试(rspec + capybara,而不是 cuke)时可供我的应用程序使用。
我的 rspec 测试有一个创建商店的 FactoryGirl 工厂。
在我的应用程序中,当商店由 init_store(coupon_code) 初始化时,会传入一个优惠券代码,用于打开/关闭各种功能(通过在优惠券表中查找该优惠券的设置)。
因此,当我创建 Store 工厂时,我还需要指定(通过 trait?)优惠券代码。然后,在我的模型中,初始化商店的方法将使用优惠券代码在优惠券表中查找一堆设置。(每张优惠券有大约 20 个属性可以打开/关闭各种商店功能。)
我的 coupons.yml 文件包含我的应用程序使用的实际优惠券表数据。现在我需要在运行测试时让它们对应用程序可用。(不要在意“脆”,这张桌子不会改变。)
没有使用带有 rspec 的固定装置或种子数据,我不确定如何/在哪里放置我的 coupons.yml 文件以及如何使优惠券“加载”到测试优惠券表中,以便在测试运行时它们可供我的应用程序使用.
我是否使用 coupons.yml 预填充种子数据?如果是这样,我怎样才能在每次测试运行时将其加载到我的测试数据库中?
或者,我应该使用固定装置吗?
无论哪种方式,coupons.yml 应该去哪里以及如何加载它(在商店工厂中?在其中一个规范中?在 specs_helper 中?)
当我搜索诸如“使用固定装置和工厂”或“使用带有 rspec 的种子数据”之类的东西时,我发现的只是“使用工厂”的建议,是的,我明白了。但是对于这种特殊情况,我需要两者,所以任何帮助将不胜感激。