【Rails6】 RSpec에 의한 관리자(admin) 기능의 모델 단위 테스트의 구현
소개
서비스 품질을 유지하기 위해 필수적인 테스트를 실시하고 있습니다.
이번에는 관리자 권한의 기능을 테스트하고 있습니다.
앞으로도 다른 모델에 대해서도 실시해 기사로 해 가고 싶습니다.
users 테이블에는 admin 열이 포함되어 있습니다.
기사 소개
원한다면 참고하십시오.
① 이하 User 모델의 단위 테스트 코드의 내용은 다음 기사에 기재되어 있습니다.
②관리자 기능의 실장의 기사는 이하에 기재하고 있습니다.
전제
· 다음 gem은 설치됨
gem 'rspec-rails', '~> 4.0.0'
gem 'factory_bot_rails'
gem 'faker'
· 관리자 기능이 구현됨
버전
루비 버전 ruby-2.6.5
Rails 버전 Rails:6.0.0
rspec-rails 4.0.0
실시한 테스트
users 테이블의 admin
xxxx_devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
#〜省略〜
t.boolean :admin, default: false
#〜省略〜
모델의 유효성 검사
app/models/user.rb
#〜省略〜
validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
#〜省略〜
FactoryBot의 내역
spec/factories/users.rb
#〜省略〜
admin {Faker::Boolean.boolean(true_ratio: 0.2)}
#〜省略〜
테스트 코드 내용
spec/models/user_spec.rbrequire 'rails_helper'
RSpec.describe User, type: :model do
before do
@user = FactoryBot.build(:user)
end
#〜省略〜
describe 'adminのバリデーション' do
context 'adminが登録される' do
it "adminの値が空欄の場合" do
@user.admin = nil
expect(@user).to be_valid
end
it "adminの値がfalseの場合" do
@user.admin = false
expect(@user).to be_valid
end
end
context 'adminの登録がうまくいかないとき' do
it "adminの値がtrueの場合" do
@user.admin = true
@user.valid?
expect(@user.errors.full_messages).to include("Adminシステムエラー:不正な値が入力されました")
end
end
end
#〜省略〜
보충 설명
boolean 형에 대해서
users 테이블에서 사용하는 boolean에 대한 것입니다.
boolean 유형은 true 또는 false의 진위 값을 결정하는 유형입니다.
관리자 기능은 "true 또는 false"를 부울 유형으로 관리합니다.
즉, user가 관리자인지 아닌지를 판별할 수 있습니다.
spec/factories/users.rb t.boolean :admin, default: false
따라서 여러 관리자를 선택할 수도 있습니다.
admin true 및 false 정보
관리자 권한을 부여하려는 사용자에 대해 admin 값을 true로 설정합니다.
true → 관리자
false → 관리자가 아닙니다.
exclusion 정보
포함하지 않는지 확인하는 데 사용합니다.
이번에는 admin이 true라는 것을 제외하고 있습니다.
즉, admin은 false 상태입니다.
app/models/user.rb validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
Faker::Boolean.boolean(true_ratio: 0.2) 정보
이번에는 테스트상 admin을 false 상태로 진행하고 싶습니다.
그래서 다음 admin에 대한 Faker를 사용하고 있습니다.
spec/factories/users.rb admin {Faker::Boolean.boolean(true_ratio: 0.2)}
Faker::Boolean.boolean의 종류에 대해서
진위치에 있어서 true 혹은 false 로 진행할 경우, 경우 분할을 할 수 있습니다.
Faker::Boolean.boolean #true
Faker::Boolean.boolean(true_ratio: 0.2) #false
단순히 true, false로 설정해도 괜찮습니다.
테스트 코드의 내용에 대해
admin은 본래 seeds.rb에서 초기 데이터를 세트하고 있으므로, 본래 등록은 되지 않습니다.
그 등록을 하지 않는 것의 테스트를 실시하고 있습니다.
이상 → [admin이 등록된다] 경우
・admin의 값이 공란인 경우
· admin의 값이 false이면
정상 → 【admin의 등록이 잘되지 않는】 경우
· admin의 값이 true 인 경우 "do
보충
admin은 등록되는 경우 이외에도 많이 있습니다.
· 디스플레이가 표시되는지
· 게시물을 볼 수 있습니까?
· 게시물을 삭제할 수 있습니까?
· 사용자 정보를 볼 수 있습니까?
· 사용자 정보를 삭제할 수 있는지 등
정상, 이상의 경우를 씻어, 테스트를 실시해 품질을 담보할 필요가 있습니다.
이상입니다.
Reference
이 문제에 관하여(【Rails6】 RSpec에 의한 관리자(admin) 기능의 모델 단위 테스트의 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/narimiya/items/8876a9c43ec26ad65fd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
원한다면 참고하십시오.
① 이하 User 모델의 단위 테스트 코드의 내용은 다음 기사에 기재되어 있습니다.
②관리자 기능의 실장의 기사는 이하에 기재하고 있습니다.
전제
· 다음 gem은 설치됨
gem 'rspec-rails', '~> 4.0.0'
gem 'factory_bot_rails'
gem 'faker'
· 관리자 기능이 구현됨
버전
루비 버전 ruby-2.6.5
Rails 버전 Rails:6.0.0
rspec-rails 4.0.0
실시한 테스트
users 테이블의 admin
xxxx_devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
#〜省略〜
t.boolean :admin, default: false
#〜省略〜
모델의 유효성 검사
app/models/user.rb
#〜省略〜
validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
#〜省略〜
FactoryBot의 내역
spec/factories/users.rb
#〜省略〜
admin {Faker::Boolean.boolean(true_ratio: 0.2)}
#〜省略〜
테스트 코드 내용
spec/models/user_spec.rbrequire 'rails_helper'
RSpec.describe User, type: :model do
before do
@user = FactoryBot.build(:user)
end
#〜省略〜
describe 'adminのバリデーション' do
context 'adminが登録される' do
it "adminの値が空欄の場合" do
@user.admin = nil
expect(@user).to be_valid
end
it "adminの値がfalseの場合" do
@user.admin = false
expect(@user).to be_valid
end
end
context 'adminの登録がうまくいかないとき' do
it "adminの値がtrueの場合" do
@user.admin = true
@user.valid?
expect(@user.errors.full_messages).to include("Adminシステムエラー:不正な値が入力されました")
end
end
end
#〜省略〜
보충 설명
boolean 형에 대해서
users 테이블에서 사용하는 boolean에 대한 것입니다.
boolean 유형은 true 또는 false의 진위 값을 결정하는 유형입니다.
관리자 기능은 "true 또는 false"를 부울 유형으로 관리합니다.
즉, user가 관리자인지 아닌지를 판별할 수 있습니다.
spec/factories/users.rb t.boolean :admin, default: false
따라서 여러 관리자를 선택할 수도 있습니다.
admin true 및 false 정보
관리자 권한을 부여하려는 사용자에 대해 admin 값을 true로 설정합니다.
true → 관리자
false → 관리자가 아닙니다.
exclusion 정보
포함하지 않는지 확인하는 데 사용합니다.
이번에는 admin이 true라는 것을 제외하고 있습니다.
즉, admin은 false 상태입니다.
app/models/user.rb validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
Faker::Boolean.boolean(true_ratio: 0.2) 정보
이번에는 테스트상 admin을 false 상태로 진행하고 싶습니다.
그래서 다음 admin에 대한 Faker를 사용하고 있습니다.
spec/factories/users.rb admin {Faker::Boolean.boolean(true_ratio: 0.2)}
Faker::Boolean.boolean의 종류에 대해서
진위치에 있어서 true 혹은 false 로 진행할 경우, 경우 분할을 할 수 있습니다.
Faker::Boolean.boolean #true
Faker::Boolean.boolean(true_ratio: 0.2) #false
단순히 true, false로 설정해도 괜찮습니다.
테스트 코드의 내용에 대해
admin은 본래 seeds.rb에서 초기 데이터를 세트하고 있으므로, 본래 등록은 되지 않습니다.
그 등록을 하지 않는 것의 테스트를 실시하고 있습니다.
이상 → [admin이 등록된다] 경우
・admin의 값이 공란인 경우
· admin의 값이 false이면
정상 → 【admin의 등록이 잘되지 않는】 경우
· admin의 값이 true 인 경우 "do
보충
admin은 등록되는 경우 이외에도 많이 있습니다.
· 디스플레이가 표시되는지
· 게시물을 볼 수 있습니까?
· 게시물을 삭제할 수 있습니까?
· 사용자 정보를 볼 수 있습니까?
· 사용자 정보를 삭제할 수 있는지 등
정상, 이상의 경우를 씻어, 테스트를 실시해 품질을 담보할 필요가 있습니다.
이상입니다.
Reference
이 문제에 관하여(【Rails6】 RSpec에 의한 관리자(admin) 기능의 모델 단위 테스트의 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/narimiya/items/8876a9c43ec26ad65fd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'rspec-rails', '~> 4.0.0'
gem 'factory_bot_rails'
gem 'faker'
루비 버전 ruby-2.6.5
Rails 버전 Rails:6.0.0
rspec-rails 4.0.0
실시한 테스트
users 테이블의 admin
xxxx_devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
#〜省略〜
t.boolean :admin, default: false
#〜省略〜
모델의 유효성 검사
app/models/user.rb
#〜省略〜
validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
#〜省略〜
FactoryBot의 내역
spec/factories/users.rb
#〜省略〜
admin {Faker::Boolean.boolean(true_ratio: 0.2)}
#〜省略〜
테스트 코드 내용
spec/models/user_spec.rbrequire 'rails_helper'
RSpec.describe User, type: :model do
before do
@user = FactoryBot.build(:user)
end
#〜省略〜
describe 'adminのバリデーション' do
context 'adminが登録される' do
it "adminの値が空欄の場合" do
@user.admin = nil
expect(@user).to be_valid
end
it "adminの値がfalseの場合" do
@user.admin = false
expect(@user).to be_valid
end
end
context 'adminの登録がうまくいかないとき' do
it "adminの値がtrueの場合" do
@user.admin = true
@user.valid?
expect(@user.errors.full_messages).to include("Adminシステムエラー:不正な値が入力されました")
end
end
end
#〜省略〜
보충 설명
boolean 형에 대해서
users 테이블에서 사용하는 boolean에 대한 것입니다.
boolean 유형은 true 또는 false의 진위 값을 결정하는 유형입니다.
관리자 기능은 "true 또는 false"를 부울 유형으로 관리합니다.
즉, user가 관리자인지 아닌지를 판별할 수 있습니다.
spec/factories/users.rb t.boolean :admin, default: false
따라서 여러 관리자를 선택할 수도 있습니다.
admin true 및 false 정보
관리자 권한을 부여하려는 사용자에 대해 admin 값을 true로 설정합니다.
true → 관리자
false → 관리자가 아닙니다.
exclusion 정보
포함하지 않는지 확인하는 데 사용합니다.
이번에는 admin이 true라는 것을 제외하고 있습니다.
즉, admin은 false 상태입니다.
app/models/user.rb validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
Faker::Boolean.boolean(true_ratio: 0.2) 정보
이번에는 테스트상 admin을 false 상태로 진행하고 싶습니다.
그래서 다음 admin에 대한 Faker를 사용하고 있습니다.
spec/factories/users.rb admin {Faker::Boolean.boolean(true_ratio: 0.2)}
Faker::Boolean.boolean의 종류에 대해서
진위치에 있어서 true 혹은 false 로 진행할 경우, 경우 분할을 할 수 있습니다.
Faker::Boolean.boolean #true
Faker::Boolean.boolean(true_ratio: 0.2) #false
단순히 true, false로 설정해도 괜찮습니다.
테스트 코드의 내용에 대해
admin은 본래 seeds.rb에서 초기 데이터를 세트하고 있으므로, 본래 등록은 되지 않습니다.
그 등록을 하지 않는 것의 테스트를 실시하고 있습니다.
이상 → [admin이 등록된다] 경우
・admin의 값이 공란인 경우
· admin의 값이 false이면
정상 → 【admin의 등록이 잘되지 않는】 경우
· admin의 값이 true 인 경우 "do
보충
admin은 등록되는 경우 이외에도 많이 있습니다.
· 디스플레이가 표시되는지
· 게시물을 볼 수 있습니까?
· 게시물을 삭제할 수 있습니까?
· 사용자 정보를 볼 수 있습니까?
· 사용자 정보를 삭제할 수 있는지 등
정상, 이상의 경우를 씻어, 테스트를 실시해 품질을 담보할 필요가 있습니다.
이상입니다.
Reference
이 문제에 관하여(【Rails6】 RSpec에 의한 관리자(admin) 기능의 모델 단위 테스트의 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/narimiya/items/8876a9c43ec26ad65fd4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
#〜省略〜
t.boolean :admin, default: false
#〜省略〜
#〜省略〜
validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
#〜省略〜
#〜省略〜
admin {Faker::Boolean.boolean(true_ratio: 0.2)}
#〜省略〜
require 'rails_helper'
RSpec.describe User, type: :model do
before do
@user = FactoryBot.build(:user)
end
#〜省略〜
describe 'adminのバリデーション' do
context 'adminが登録される' do
it "adminの値が空欄の場合" do
@user.admin = nil
expect(@user).to be_valid
end
it "adminの値がfalseの場合" do
@user.admin = false
expect(@user).to be_valid
end
end
context 'adminの登録がうまくいかないとき' do
it "adminの値がtrueの場合" do
@user.admin = true
@user.valid?
expect(@user.errors.full_messages).to include("Adminシステムエラー:不正な値が入力されました")
end
end
end
#〜省略〜
boolean 형에 대해서
users 테이블에서 사용하는 boolean에 대한 것입니다.
boolean 유형은 true 또는 false의 진위 값을 결정하는 유형입니다.
관리자 기능은 "true 또는 false"를 부울 유형으로 관리합니다.
즉, user가 관리자인지 아닌지를 판별할 수 있습니다.
spec/factories/users.rb
t.boolean :admin, default: false
따라서 여러 관리자를 선택할 수도 있습니다.
admin true 및 false 정보
관리자 권한을 부여하려는 사용자에 대해 admin 값을 true로 설정합니다.
true → 관리자
false → 관리자가 아닙니다.
exclusion 정보
포함하지 않는지 확인하는 데 사용합니다.
이번에는 admin이 true라는 것을 제외하고 있습니다.
즉, admin은 false 상태입니다.
app/models/user.rb
validates :admin, exclusion: {in: [true], message: "システムエラー:不正な値が入力されました"}
Faker::Boolean.boolean(true_ratio: 0.2) 정보
이번에는 테스트상 admin을 false 상태로 진행하고 싶습니다.
그래서 다음 admin에 대한 Faker를 사용하고 있습니다.
spec/factories/users.rb
admin {Faker::Boolean.boolean(true_ratio: 0.2)}
Faker::Boolean.boolean의 종류에 대해서
진위치에 있어서 true 혹은 false 로 진행할 경우, 경우 분할을 할 수 있습니다.
Faker::Boolean.boolean #true
Faker::Boolean.boolean(true_ratio: 0.2) #false
단순히 true, false로 설정해도 괜찮습니다.
테스트 코드의 내용에 대해
admin은 본래 seeds.rb에서 초기 데이터를 세트하고 있으므로, 본래 등록은 되지 않습니다.
그 등록을 하지 않는 것의 테스트를 실시하고 있습니다.
이상 → [admin이 등록된다] 경우
・admin의 값이 공란인 경우
· admin의 값이 false이면
정상 → 【admin의 등록이 잘되지 않는】 경우
· admin의 값이 true 인 경우 "do
보충
admin은 등록되는 경우 이외에도 많이 있습니다.
· 디스플레이가 표시되는지
· 게시물을 볼 수 있습니까?
· 게시물을 삭제할 수 있습니까?
· 사용자 정보를 볼 수 있습니까?
· 사용자 정보를 삭제할 수 있는지 등
정상, 이상의 경우를 씻어, 테스트를 실시해 품질을 담보할 필요가 있습니다.
이상입니다.
Reference
이 문제에 관하여(【Rails6】 RSpec에 의한 관리자(admin) 기능의 모델 단위 테스트의 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/narimiya/items/8876a9c43ec26ad65fd4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)