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



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

我已经在BDD外面用黄瓜测试了,但我通常更早停止,使用rspec很少,没有夹具和模型,担心实际情况,并通过Rails.logger.info用rails记录器打印字段值

但是现在我受够了,当模型变得更复杂时,它太让人不知所措了。

在rails中使用tdd/bdd测试mongodb模型的最佳方法是什么?我从哪里开始呢?

我以前没有使用过Mongoid,但是是否有任何理由测试这些模型会与使用ActiveRecord不同?我个人依靠RSpec进行单元测试,它应该只测试模型的外部API(行为),不应该依赖太多fixture或测试内部数据或私有方法。你可以使用mock &在很多情况下,存根也可以避免DB持久化。

如果你的模型变得太复杂,你可能想考虑采用更面向对象的方法,并提取一些逻辑到其他不依赖于Mongoid的类中。在这种情况下,你有很多选择,如果你有兴趣了解更多,我强烈推荐重构Ruby。

最新更新