我正在尝试规范控制器代码:
# ClustersController
def create
# create new cluster
@cluster.user = current_user
# save code
end
我正在使用Rails 3 / RSpec 2,而且我对TDD流程还不熟悉。我基本上想确保在创建操作期间分配了用户属性。
答案 0 :(得分:1)
首先,我认为你不应该创建,更新保存对象。您可以将用户传递给create方法,如下所示:
Cluster.create(:user => current_user)
要测试这个,你可以这样做:
describe ClusterController do
describe "POST create" do
it "creates a new cluster" do
lamda do
post :create
end.should change(Cluster, :count).by(1)
end
it "set the current user as the new cluster's user" do
user = mock()
Cluster.should_receive(:create).with(:user => user)
post :create
assign(:cluster).user.should == user
end
end
end
我认为那样做。
希望有所帮助。