我觉得在Ruby on Rails中使用灯具有点繁琐,部分原因是我需要在大多数迁移后手动纠正它们。
有没有办法(插件?)我可以在运行迁移时修改我的灯具?
答案 0 :(得分:2)
在上面添加womble的答案,您可以使用topfunky的ar_fixures插件从您的开发数据库生成灯具:
http://github.com/topfunky/ar_fixtures/tree/master
在我看来,对于一个小型的,管理良好的固定装置来说,它仍然是一个有效的地方 - 就像模拟物体一样......但是我们会把它留下另一天!
另外值得考虑一下fixture-sets-for-rails插件,虽然我自己没有用过它: http://thatswhatimtalkingabout.org/news/2006/8/31/fixture-sets-for-rails 看起来像是一个合理的想法,虽然我会非常谨慎地构建大量令人困惑的灯具 - 当你的域模型发生变化时,你可能需要修复这些灯具。我可能会坚持使用模拟(这个插件看起来很旧,可能是在摩卡出现之前写的)。
答案 1 :(得分:1)
Rails社区中有很多关于使用或不使用灯具的争论。就个人而言,当我对模型进行更改时,我正在使用factory_girl手动更新。
如果您选择使用灯具,我认为您应该手动更新它们,因为它们是您的测试套件的一部分,它必须检查您的代码是否按预期工作。
答案 2 :(得分:0)
我很确定有一个插件可以将数据库的当前内容转储到fixture文件中(虽然我不记得它的名字在我的头顶)。处理此问题的一种方法是加载灯具,运行迁移,然后使用此插件将灯具转出。
另一方面,如果您的数据库架构发生了变化,那么您的测试条件,极端情况和约束现在可能会有所不同,因此手动审查您的灯具和测试用例可能并不是一个坏主意。
答案 3 :(得分:0)
答案 4 :(得分:0)
Factory Girl或Machinist都是灯具的绝佳替代品,您只需要定义模型的有效实例,然后根据需要使用尽可能多的实例。我使用Machinist,但开始使用Factory Girl,因为它更好地支持你的模型之间的关联。