代码之家  ›  专栏  ›  技术社区  ›  MiniQuark

迁移可以应用于RubyonRails中的设备吗?

  •  2
  • MiniQuark  · 技术社区  · 17 年前

    我发现在RubyonRails中使用fixture有点乏味,部分原因是我需要在大多数迁移之后手动更正它们。

    有没有办法(插件?)我可以在运行迁移时修改设备吗?

    5 回复  |  直到 17 年前
        1
  •  2
  •   Martin Dow    17 年前

    添加到上面Womble的答案中,您可以使用topfunky的ar_fixers插件从您的dev数据库生成fixes:

    http://github.com/topfunky/ar_fixtures/tree/master

    在我看来,在Rails中仍然有一个小的、管理良好的固定装置集的有效位置-就像模拟对象一样…但我们会再留一天的!

    同样值得考虑的是Rails插件的夹具集,尽管我自己没有使用它: http://thatswhatimtalkingabout.org/news/2006/8/31/fixture-sets-for-rails 似乎是一个合理的想法,尽管我会非常谨慎地构建大量令人困惑的设备集-当域模型更改时,每个设备都可能需要修复。我可能会坚持mocks(这个插件看起来很老,可能是在mocha出现之前写的)。

        2
  •  1
  •   Mihai A    17 年前

    Rails社区中有很多关于使用或不使用设备的争论。我个人在用 factory_girl 当我对模型进行更改时手动更新。

    如果您选择使用fixture,我认为您应该手动更新它们,因为它们是您的测试套件的一部分,它必须检查您的代码是否按预期工作。

        3
  •  0
  •   womble    17 年前

    我相当肯定有一个插件可以将数据库的当前内容转储到fixture文件中(尽管我不记得它的名字在我的头上)。处理这个问题的一种方法是加载设备,运行迁移,然后使用这个插件将设备转储出来。

    另一方面,如果您的DB模式发生了变化,那么很可能您的测试条件、转角案例和约束现在是不同的,所以手动检查您的设备和测试案例可能不是一个坏主意。

        4
  •  0
  •   pope    17 年前

    我也觉得固定装置有点乏味,所以我尽量不使用它们。

    相反,我使用 mocks . 退房 rspec mocha .

        5
  •  0
  •   nitecoder    17 年前

    工厂女工或机械师都是夹具的绝佳替代品,您只需定义模型的有效实例,然后根据需要使用尽可能多或尽可能少的实例。我在用机械师,但开始用工厂女孩,因为它有更好的支持之间的关系,你们的模型。