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

标签 ruby-on-rails ruby testing activerecord model

一个人应该在 Rails 中测试多少模型?由于该框架基本上为您做了这么多,我想知道是否值得测试生成的 activerecord 方法以确保它们是否有效。

你们是否通过 Controller 隐式测试它们?

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

但是因为您根本没有在 Rails 中配置任何这些东西……它就是这么简单……它值得测试吗,或者您只是假设它有效?您是否只是将自己限制在确保关联按预期工作?

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

但它并没有具体谈到ActiveRecord。它更侧重于 Controller 和其他东西。

谢谢!

最佳答案

我不会尝试测试事件记录等引入的任何方法。它们已经由 Rails 团队测试过。他们已经编写了测试用例。

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

railsguides 对您来说是一个很好的起点。之后你可以挖掘更多有趣的东西。我建议您看一下 rspec 和 cucumber。

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

关于ruby-on-rails - 在 Rails 中测试模型的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845755/

相关文章:

javascript - 如何在 Selenium IDE 中运行嵌入页面的脚本?

reactjs - Jest 错误 : 'jest' is not recognized as an internal or external command, 可运行程序或批处理文件

ruby-on-rails - 为什么 ActiveRecord 有这个特性?

ruby-on-rails - tmux:我的其他终端还在运行吗?

ruby-on-rails - ruby rails : redirect unauthenticated user to root instead of the sign in page

ruby - pry 开显示像 [äöüßÄÖÜß](utf-8 编码)这样的字符? (可能是特定于 Windows 的问题?)

ruby-on-rails - 如何呈现 XML 模板,然后在 Ruby on Rails 3.2.8 中使用 SEND_DATA?

ruby - 写一个原子操作

ruby - 使 bool 参数更具可读性

ruby-on-rails - assert_difference 与字符串?