RSpec测试使用预期语法的专家

伊利亚一世

我正在尝试将以下规范转换为新的Expect语法,有人可以帮忙吗?

describe PostPolicy do
  subject { PostPolicy }

  permissions :create? do
    it "denies access if post is published" do
      should_not permit(User.new(:admin => false), Post.new(:published => true))
    end

    it "grants access if post is published and user is an admin" do
      should permit(User.new(:admin => true), Post.new(:published => true))
    end

    it "grants access if post is unpublished" do
      should permit(User.new(:admin => false), Post.new(:published => false))
    end
  end
end

我试过了,但是permit()没用,因为返回了匹配器- RSpec::Matchers::DSL::Matcher

specify { expect(permit(@user, @post)).to be_true }
阿尔夫

您必须subject显式调用,因为隐式接收器仅适用于should这里这里有更多信息

在您的示例中,这应该起作用:

describe PostPolicy do
  subject { PostPolicy }

  permissions :create? do
    it "denies access if post is published" do
      expect(subject).not_to permit(User.new(:admin => false), Post.new(:published => true))
    end

    it "grants access if post is published and user is an admin" do
      expect(subject).not_to permit(User.new(:admin => true), Post.new(:published => true))
    end

    it "grants access if post is unpublished" do
      expect(subject).not_to permit(User.new(:admin => false), Post.new(:published => false))
    end
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Rails Rspec 进行测试 - 预期和得到的不匹配

来自分类Dev

使用新的Rspec语法在CanCan中测试功能

来自分类Dev

使用RSpec和Cabybara测试链接:新旧语法

来自分类Dev

使用RSpec和Cabybara测试链接:旧语法和新语法

来自分类Dev

使用Rspec测试使用错误数量的参数(给定2个,预期为1个)的get:index测试失败

来自分类Dev

使用RSpec测试块

来自分类Dev

使用rspec测试Perl?

来自分类Dev

Rspec提高错误无法按预期工作,需要正确的语法

来自分类Dev

尝试使用Shoulda-matchers / RSpec来测试唯一性验证时,出现“未预期到...”错误

来自分类Dev

Rspec预期并获得相同但仍未通过测试

来自分类Dev

Rspec测试不断失败并达到预期水平...失败了

来自分类Dev

预期有序数组时,Rspec测试失败

来自分类Dev

使用Rspec测试Sidekiq工人

来自分类Dev

使用rspec测试Ruby模块

来自分类Dev

使用RSpec 3测试模块

来自分类Dev

使用RSpec测试多态关联

来自分类Dev

如何使用RSpec测试记忆?

来自分类Dev

使用RSpec测试API资源

来自分类Dev

使用RSpec测试多态关联

来自分类Dev

使用RSpec测试SuckerPunch :: Job

来自分类Dev

使用Rspec测试-正确的方法

来自分类Dev

使用RSpec测试Ajax搜索

来自分类Dev

使用RSpec测试Cancancan能力

来自分类Dev

如何使用RSpec测试negamax?

来自分类Dev

RSpec:测试记录器消息的块语法

来自分类Dev

Mockito使用间谍更好的预期异常测试

来自分类Dev

使用RSpec和Factory Girl测试设计

来自分类Dev

使用Capybara和Rspec删除测试失败

来自分类Dev

如何使用RSpec测试ActionCable频道?