在Rails中测试模型的最佳实践是什么?

ege*_*ari 4 ruby testing activerecord model ruby-on-rails

一个测试模型应该在轨道上多少或多少?由于框架基本上对你做了很多,我想知道是否值得测试生成的activerecord方法以确保它们工作与否.

你们通过控制器隐含地测试它们吗?

在Java世界中,如果我使用Hibernate,我必须编写如此多的ORM映射内容,测试每个实体的save/delete/find非常重要 - 即使我只是从基类继承这些方法 - 因为它很容易实现获取映射信息错误,或犯一个愚蠢的错误.删除很重要,以确保Hibernate正确级联.

但是因为你根本没有在rails中配置任何这些东西......它就是这么简单......它值得测试,还是只是假设它有效?您是否仅限于确保协会按预期工作?

什么是最佳做法?有什么好的测试例吗?我在这里找到了一个页面:http: //guides.rubyonrails.org/testing.html

但它没有具体谈论ActiveRecord.它更多地关注控制器和其他东西.

谢谢!

the*_*fme 6

我不会尝试测试活动记录等引入的任何方法.它们已经由rails团队测试过.他们已经编写了测试用例.

但我会测试我的所有方法,基本上我在模型中编写的任何自定义代码.首先将它们作为单独的单元进行测试,我将使用单元测试.为了确保整个工作正常(模型控制器......等),您可以使用集成测试.

导轨对你来说是一个非常好的起点.之后你可以挖掘更多有趣的东西.我建议你看看和rspec和黄瓜.

一些对您有帮助的stackoverflow问题(和答案)


Spy*_*ros 5

不,测试活动记录不是一个好主意,它已经进行了非常广泛的测试,所以你只会浪费你的时间.

你应该测试你写的任何东西.应该测试您编码的任何模型方法.也就是说,不要测试Active Record删除方法是否有效,但如果您的流程实现有效(例如,如果用户单击删除并且他有项目,则会被删除).测试行为,而不是测试行为.

看看使用rspec测试控制器的这个非常好的演员:

http://railscasts.com/episodes/71-testing-controllers-with-rspec

您提到的资源可能也是最好的:)如果您对rspec感兴趣,可以在这里找到一些非常好的信息:

http://rspec.info/