RSpec预期变化:

it "should increment the count" do
  expect{Foo.bar}.to change{Counter.count}.by 1
end

有没有一种方法可以让两张桌子发生变化?

expect{Foo.bar}.to change{Counter.count}.by 1 
and change{AnotherCounter.count}.by 1 

推荐答案

这应该是两个测试.RSpec best practices call for one assertion per test

describe "#bar" do
  subject { lambda { Foo.bar } }

  it { should change { Counter.count }.by 1 }
  it { should change { AnotherCounter.count }.by 1 }
end

Ruby相关问答推荐

用函数组合枚举器的Ruby方法

如何使用 HEREDOC 作为参数传递给方法?

设计登录根路由rails 3

如何修改 Ruby gem

bundler 可以告诉我 Gemfile 中的哪些 gem 有更新的版本

在 Ruby 中覆盖 == 运算符

如何将 each每个方法添加到 Ruby 对象(或者我应该扩展 Array)?

按可能为 nil 的属性对对象的 ruby​​ 数组进行排序

Ruby 1.9 - 无效的多字节字符(US-ASCII)

格式化 Ruby 的漂亮打印

如何自定义 Jekyll 的 url?

如何获取从位置 N 到 Ruby 中最后一个字符的子字符串?

group_by 在 rails by 2 或更多属性

Ruby中的常量或类变量?

使用 for each 时识别最后一个循环

如何在 Ruby 中找到除法的余数?

Sinatra 登录?

获取当前 ruby​​ 进程内存使用情况

为什么在 ruby​​ 中动态创建大量符号不是一个好主意(对于 2.2 之前的版本)?

如何在 Ruby 循环的第一次迭代中采取不同的行动?