Я хотел бы написать тест, чтобы убедиться, что «экспертные» пользователи могут создавать статьи, а «базовые» пользователи не могут. Например, базовый пользователь не может здесь: "http://0.0.0.0:3000/articles/new"
. Ниже приведена сокращенная версия моего контроллера товаров, а затем тест статей. Контроллер работает, но я бы хотел, чтобы тест показал это. Я не уверен, что положить туда, где говорится, что «код идет здесь». Благодарю.Rails rspec тест для возможностей cancan контроллера
articles_controller:
class ArticlesController < ApplicationController
load_and_authorize_resource
# GET /articles/new
# GET /articles/new.json
def new
puts "in articles new"
@article = Article.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @article }
end
end
end
articles_controller_spec:
describe ArticlesController do
before (:each) do
@user = FactoryGirl.create(:user)
@user.role = "basic"
sign_in @user
end
describe "create article" do
it "should not create new article" do
#code goes here
end
end
end
Я на самом деле пытается решайте, следует ли тестировать мои способности в модели или спецификации контроллера. Можете ли вы объяснить, почему вы считаете, что тестирование в спецификации модели является предпочтительным? – Emeka
Это быстрее, требуется меньше кода для покрытия большинства случаев, и все тесты будут в одном месте. – ck3g
После моего 10-го спекулянта, пытающегося разобрать json с контроллера, я думаю, что я начинаю соглашаться. Гораздо проще просто проверить способность, чем весь контроллер, в зависимости от способности. – Emeka