cuốn sách gpt4 ai đã làm

ruby-on-rails - Cách làm sạch bài kiểm tra này bằng cú pháp Ruby tốt hơn

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:21:16 27 4
mua khóa gpt4 Nike

Tôi vẫn đang cải thiện kỹ năng Ruby của mình.

Tôi đang cố gắng tìm hiểu xem liệu tôi có thể DRY mã này để kiểm tra rspec hay không:

yêu cầu 'rails_helper'

RSpec.describe Vai trò, loại: :model do

mô tả "có một số loại vai trò"

trước :mỗi người làm
@roles = Vai trò.tất cả
end

bối cảnh "Các loại vai trò hợp lệ" làm
nó "bao gồm 'người soát lỗi', 'quản trị viên', 'super_admin' "
mong đợi(@roles.any?{|r| r.name == 'proofreader'}).to be_truthy
mong đợi(@roles.any?{|r| r.name == 'admin'}).to be_truthy
mong đợi(@roles.any?{|r| r.name == 'super_admin'}).to be_truthy
end
end

bối cảnh "Các loại vai trò không hợp lệ" làm
nó "bao gồm 'nhà phát triển' " làm
mong đợi(@roles.any?{|r| r.name == 'developer'}).to be_falsy
end
end

end

end

Cụ thể là tôi muốn rút gọn ba dòng mã này thành một dòng nhưng lại không biết cách kiểm tra mối quan hệ ActiveRecord của ba giá trị chuỗi trong một dòng. Có ý tưởng gì không?

câu trả lời hay nhất

Có vẻ như bạn cần sử dụng bao gồm Người so khớp:

nó "bao gồm 'người soát lỗi', 'quản trị viên', 'super_admin' "
mong đợi(@roles.map(&:name)).to include('proofreader', 'admin', 'super_admin')
end

Ngoài ra, bạn có thể xóa trước chặn, chỉ cần sử dụng Vai trò.pluck(:name) thay thế:

let(:roles_names) { Role.pluck(:name) }
nó '...' làm
mong đợi(roles_names).to include('proofreader', 'admin', 'super_admin')
end

Về Ruby-on-Rails - Cách hoàn thành bài kiểm tra này bằng cú pháp Ruby tốt hơn, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/38970451/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress