Я использую Pundit камень для авторизации на моей закрытой системе Ruby, Rails по применению (с помощью Rails 4.1.5 и RSpec 3.0)Как создать спецификацию, которая проверяет, что Pundit отклоняет пользователей, которые не вошли в систему?
Я настроил свою политику приложений, чтобы вызвать исключение, когда пользователь не определен как это рекомендовано в документации пандита:
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
raise Pundit::NotAuthorizedError, "must be logged in" unless user
@user = user
@record = record
end
end
Как я могу написать спецификацию, которая проверяет, что каждая политика пандита отвергает нулевую пользователь?
Я сделал следующую попытку:
RSpec.describe PostPolicy do
it "should raise an exception when users aren't logged in" do
expect(AccountFolderPolicy.new(nil, record)).to raise_error(Pundit::NotAuthorizedError)
end
end
Но это ошибки с
Failure/Error: expect(PostPolicy.new(nil, record)).to raise_error(Pundit::NotAuthorizedError)
Pundit::NotAuthorizedError:
must be logged in
Любые предложения о том, как правильно проверить это?
[ожидая ошибок должны работать с лямбда или блока 'ожидать {...} .to raise_error' ] (https://github.com/rspec/rspec-expectations#expecting-errors) вместо 'ожидать (...) .to raise_error()' –