Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RSpec:如何在两个不同的对象上期望有序消息?_Ruby On Rails_Ruby_Unit Testing_Rspec - Fatal编程技术网

Ruby on rails RSpec:如何在两个不同的对象上期望有序消息?

Ruby on rails RSpec:如何在两个不同的对象上期望有序消息?,ruby-on-rails,ruby,unit-testing,rspec,Ruby On Rails,Ruby,Unit Testing,Rspec,如何在两个不同的对象上获得有序消息?目前我有这样的想法: call_order = '' expect(double1).to receive(:msg1) { call_order += '1' } expect(double2).to receive(:msg2) { call_order += '2' } expect(call_order).to eq '12' 我知道我可以使用以下方法在单个对象上获得有序消息: expect(double).to receive(:msg).or

如何在两个不同的对象上获得有序消息?目前我有这样的想法:

call_order = ''

expect(double1).to receive(:msg1) { call_order += '1' }
expect(double2).to receive(:msg2) { call_order += '2' }

expect(call_order).to eq '12'
我知道我可以使用以下方法在单个对象上获得有序消息:

expect(double).to receive(:msg).ordered
expect(double).to receive(:other_msg).ordered
根据rspec 3的规定,允许

collaborator_1 = double("Collaborator 1")
collaborator_2 = double("Collaborator 2")

expect(collaborator_1).to receive(:step_1).ordered
expect(collaborator_2).to receive(:step_2).ordered
expect(collaborator_1).to receive(:step_3).ordered

collaborator_1.step_1
collaborator_2.step_2
collaborator_1.step_3

#=> the examples should all pass