使用tdd / bdd在轨道中测试mongoid模型的最佳方法是什么?

时间:2012-01-04 13:00:37

标签: ruby-on-rails mongodb tdd mongoid bdd

到目前为止,为了测试rails / mongoid数据库模型,我曾经有一个真正的模型,只有很少的数据(3 .. 5),试图覆盖每一个真实的情况。

我已经在黄瓜的BDD外面进行测试了,但我通常会提前停止,使用rspec非常少,没有夹具和模型,通过Rails.logger.info

但是现在我厌倦了这一点,当模型变得更加复杂时,它太过于压倒性。

使用tdd / bdd测试轨道中mongoid模型的最佳方法是什么? 我在哪里可以开始?

1 个答案:

答案 0 :(得分:1)

之前我没有使用过Mongoid,但有没有理由为什么测试这些模型与使用ActiveRecord的模型有什么不同?我个人依赖RSpec进行单元测试,它应该只测试模型的外部API(行为),不应该太依赖于固定装置或测试内部数据或私有方法。你可以用mocks&存根以避免在很多情况下的数据库持久性。

如果你的模型变得太复杂,你可能会考虑采用更多的OOP方法并将一些逻辑提取到不依赖于Mongoid的其他类。在这种情况下,您有很多选择,如果您有兴趣了解更多信息,我强烈推荐Refactoring Ruby