1

我有以下测试,检查是否在创建任务时创建了新任务和任务连接​​(用户和任务之间的连接表)。到目前为止,我使用 2 个 lambda 进行了检查,并希望在 1 行中完成...

 68       it 'can create new task' do       
 69         lambda do
 70           lambda do
 71             post :create, :project_id => project,         
 72                           :task => valid_attributes
 73           end.should change(Task, :count).by(1)
 74         end.should change(TaskConnection, :count).by(1)                                                                                          
 75       end

像这样的东西……有可能吗?

 68       it 'can create new task' do       
 69         lambda do
 71           post :create, :project_id => project,         
 72                         :task => valid_attributes
 73         end.should change(Task && TaskConnection, :count).by(1 && 1)                                                                                         
 75       end
4

1 回答 1

1

你不能完全按照你在第二个例子中建议的那样做,但你可以像这样组合它们:

it 'can create new task' do
  lambda do
    post(:create, :project_id => project, :task => valid_attributes)
  end.should (change(Task, :count).by(1) && change(TaskConnection, :count).by(1))
end

不过,我真的不推荐这种方法。虽然简洁,但 RSpec 在失败时报告的错误并不能告诉您哪个期望失败了。它只是说其中一个没有改变你认为的方式。

于 2012-06-09T13:28:40.370 回答