RSpec не видит модель уничтожить - PullRequest
1 голос
/ 04 марта 2012

RSpec не видит разрушение модели, когда я вызываю команду destroy из контроллера.Есть ли какая-то дополнительная команда, которую нужно иметь в методе ProjectsController # destroy, чтобы рельсы действительно выполняли уничтожение?Или сказать RSpec перезагрузить счетчик проектов после завершения уничтожения?(Рельсы 3.2.2)

class ProjectsController < ApplicationController
  def destroy
    @project = current_user.my_projects.find params[:id]
    @project.destroy
  end
end

describe ProjectsController do
  let(:current_user) { Factory(:user) }
  let(:current_user_project) { current_user.my_projects.create(Factory.attributes_for(:project, owner: nil)) }

  context "one of the current users projects" do
    before { delete :destroy, format: :json, id: current_user_project }
    it { response.should be_success }
    it { expect { delete :destroy, format: :json, id: current_user_project }.to change(Project, :count).by(-1) }
  end
end

1 Ответ

1 голос
/ 25 марта 2012

Насколько я помню, в Rails при вызове destroy удаляются только записи в вашей базе данных и только замораживается ваш объект, то есть вы больше не можете назначать значения. Но это на самом деле не удаляет ваш объект. Так что вам нужно перезагрузить, чтобы увидеть ваши изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...