Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

RSpec expect change:

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

Is there a way to expect change in two tables?

expect{Foo.bar}.to change{Counter.count}.by 1 
and change{AnotherCounter.count}.by 1 
question from:https://stackoverflow.com/questions/13616631/is-it-possible-for-rspec-to-expect-change-in-two-tables

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
308 views
Welcome To Ask or Share your Answers For Others

1 Answer

I prefer this syntax (rspec 3 or later):

it "should increment the counters" do
  expect { Foo.bar }.to change { Counter,        :count }.by(1).and 
                        change { AnotherCounter, :count }.by(1)
end

Yes, this are two assertions in one place, but because the block is executed just one time, it can speedup the tests.

EDIT: Added Backslash after the .and to avoid syntax error


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...