使用rspec,我想写下以下内容:
@clients = Client.find_all_by_status('active').sort_by {|client|client['name'].downcase}
被正确调用。
@client = stub_client({ :name => 'abc' })
Client.should_receive(:find_all_by_status).with('active').and_return([@client])
这可以工作,但不测试是否调用了sort_by子句。
是否有语法可以验证对find_all_by_status
的调用是否跟随sort_by
)?
答案 0 :(得分:0)
最简单的方法是写出两个期望:
Client.should_receive(:find_all_by_status).with('active').and_return([@client])
Client.should_receive(:sort_by)
此外,我还提到了之前关于使用order而不是sort_by的评论,这是出于性能原因。