RSpec中测试模块的最佳实践是什么?我有一些模块包含在少数几个模型中,目前我只是对每个模型进行了重复测试(几乎没有差异).有没有办法把它擦干?

推荐答案

我在rspec主页上找到了更好的解决方案.显然,它支持共享示例组.从https://www.relishapp.com/rspec/rspec-core/v/2-13/docs/example-groups/shared-examples开始!

共享示例组

您可以创建共享示例组

假设你有这样的行为

首先,找出"共享的"

shared_examples_for "all editions" do   
  it "should behave like all editions" do   
  end 
end

然后当你需要定义行为时

describe "SmallEdition" do  
  it_should_behave_like "all editions"
  it "should also behave like a small edition" do   
  end 
end

Ruby相关问答推荐

关键字if是什么对象类型/类?

类 SpecificationPolicy 的超类不匹配

Rack并发 - rack.multithread、async.callback 或两者兼而有之?

如何替换 ruby​​ 中模式的每个实例?

构造Ruby的现代方法是什么?

Ruby on Rails 中是否有简写 if(没有 else)语句?

Ruby 对象打印为指针

如何按长度对 Ruby 字符串数组进行排序?

在 RSpec-2.11 中使用隐含的 `subject` 和 `expect`

格式化 Ruby 的漂亮打印

Ruby 的 File.open 给出没有这样的文件或目录 - text.txt (Errno::ENOENT)错误

group_by 在 rails by 2 或更多属性

在Ruby中第一个=符号之后获取子字符串

在 Ruby 中,有没有办法使用 hash.each_with_index do |[k,v], i| 之类的东西?

如何在 Ruby 符号中转义破折号-?

在 Ruby 中将散列扁平化为字符串

Ruby 将标题发布到 slug

Ruby 哈希白名单过滤器

Ruby Style:如何判断嵌套的哈希元素是否存在

正则表达式中的 `?i` 和 `?-i` 是什么意思?