Как специфицировать контроллер, где происходят ассоциации моделей - PullRequest
0 голосов
/ 16 января 2011

Я пытаюсь указать код контроллера:

# ClustersController
def create
  # create new cluster
  @cluster.user = current_user
  # save code
end

Я использую Rails 3 / RSpec 2, и я довольно плохо знаком с потоком TDD. Я в основном хочу убедиться, что пользовательский атрибут назначен во время действия создания.

1 Ответ

1 голос
/ 16 января 2011

Для начала я не думаю, что вы должны создать, обновить сохранить объект. Вы можете передать пользователя методу 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

Я думаю, что подойдет.

Надеюсь, что поможет.

...