如何使用更好的Ruby语法清理此测试

查尔

我仍在不断提高我的Ruby技能。

我一直在尝试找出是否可以将此代码干燥以进行rspec测试:

require 'rails_helper'

RSpec.describe Role, type: :model do

    describe "has several roles types " do

        before :each do 
            @roles = Role.all
        end

        context "The role types that are valid" do
            it "includes 'proofreader', 'admin', 'super_admin' " do
                expect(@roles.any?{|r| r.name == 'proofreader'}).to be_truthy
                expect(@roles.any?{|r| r.name == 'admin'}).to be_truthy
                expect(@roles.any?{|r| r.name == 'super_admin'}).to be_truthy
            end
        end

        context "The role types that are not valid " do
            it "includes 'developer' " do
                expect(@roles.any?{|r| r.name == 'developer'}).to be_falsy
            end
        end

    end

end

具体来说,我想将这三行代码减少为一行,但是这使我无法在一行中为三个字符串值检查ActiveRecord关系。有任何想法吗?

伊利亚

似乎您需要使用include匹配器:

it "includes 'proofreader', 'admin', 'super_admin' " do
  expect(@roles.map(&:name)).to include('proofreader', 'admin', 'super_admin')
end

另外,您可以删除before块并仅使用它Role.pluck(:name)

let(:roles_names) { Role.pluck(:name) }
it '...' do
  expect(roles_names).to include('proofreader', 'admin', 'super_admin')
end

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用LISTAGG清理此报告?

来自分类Dev

如何清理此python输出

来自分类Dev

如何使用EPPLUS语法编写此Excel Interop语法

来自分类Dev

在单元测试中使用HttpClient后如何正确清理

来自分类Dev

使用Mockito时如何在春季测试中清理模拟

来自分类Dev

在单元测试中使用HttpClient后如何正确清理

来自分类Dev

如何使鼻子测试使用点分语法?

来自分类Dev

如何重构此Ruby清理散列方法以使其更加惯用?

来自分类Dev

如何阅读此语法?

来自分类Dev

在ruby中编写此.map()的更好方法?

来自分类Dev

在ruby中编写此.map()的更好方法?

来自分类Dev

如何使用ruby遍历此json文档?

来自分类Dev

如何使用循环编写此Ruby函数?

来自分类Dev

如何正确清理此jQuery代码段

来自分类Dev

如何缩短或清理此python代码?

来自分类Dev

如何使用导入模块语法重写此require模块

来自分类Dev

如何使用导入模块语法重写此require模块

来自分类Dev

如何使用 Python 串行修复此语法错误?

来自分类Dev

如何使用相关的管理器和反向查询来清理此Django查询集

来自分类Dev

如何使用Ruby测试SSH连接

来自分类Dev

如何使用rspec测试ruby继承

来自分类Dev

如何使用 minitest 测试 Ruby catch/throw?

来自分类Dev

如何更好地管理hadoop机器上的/ tmp清理

来自分类常见问题

Chai:如何使用“ should”语法测试未定义

来自分类Dev

如何以更好的风格编写此计算?

来自分类Dev

如何更好地编写此C ++程序

来自分类Dev

jQuery清理或更好的方法

来自分类Dev

在Ruby中循环遍历数组的更好语法

来自分类Dev

如何使用Python re编写此Ruby gsub?