[RSpec] binding.pry 단위 테스트 코드의 기본 용법
7011 단어 초학자용
소개
메모용으로 기록하고 있습니다.
특히 무엇인가를 참고한 것은 아니기 때문에, 실수는 지적해 주시면 다행입니다.
테스트 코드 실행 명령
bundle exec rspec 테스트 할 파일 이름 ← # spec/에서 설명
spec/factories/orders.rbFactoryBot.define do
factory :order do
price { 3000 }
end
end
spec/models/order_spec.rbrequire 'rails_helper'
RSpec.describe Order, type: :model do
before do
@order = FactoryBot.build(:order)
end
describe '購入情報のデータの保存' do
context '成功' do
it "priceがあれば保存ができること" do
expect(@order).to be_valid
end
end
context '失敗' do
it "priceが空では保存ができないこと" do
@order.price = nil
@order.valid?
expect(@order.errors.full_messages).to include("Price can't be blank")
end
end
end
end
기본 용법
FactoryBot의 인스턴스가 올바르게 생성되었습니까?
인스턴스 변수에 할당되어 있습니까?
를 확인합니다.
spec/models/order_spec.rbRSpec.describe Order, type: :model do
before do
@order = FactoryBot.build(:order)
binding.pry ←
end
price: 3000
라는 값이 @order 에 포함되어 있는 것을 알았습니다.
FactoryBot의 인스턴스 생성은 성공입니다.
인스턴스 변수에 값이 포함되어 있습니까?
유효성 검사를 통해 오류가 있는지 여부?
를 확인합니다.
spec/models/order_spec.rbdescribe '購入情報のデータの保存' do
context '成功' do
it "priceがあれば保存ができること" do
expect(@order).to be_valid
binding.pry ←
end
end
@order.valid?의 결과가 true입니다.
"price가 있으면 저장할 수 있는 것"이라는 테스트는 성공입니다.
인스턴스 변수에 값이 포함되어 있습니까?
유효성 검사를 통해 오류가 있는지 여부?
오류 메시지의 내용은?
를 확인합니다.
spec/models/order_spec.rbcontext '失敗' do
it "priceが空では保存ができないこと" do
@order.price = nil
@order.valid?
expect(@order.errors.full_messages).to include("Price can't be blank")
binding.pry ←
end
end
인스턴스 변수의 내용이, 대입한 price: nil 가 되어 있습니다.
이렇게하면 @order.valid?의 결과가 false가되고,
오류 메시지가 "Price can't be blank"임을 알 수 있습니다.
"price가 하늘에서는 저장할 수 없는 것"이라는 테스트는 성공입니다.
Reference
이 문제에 관하여([RSpec] binding.pry 단위 테스트 코드의 기본 용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yait/items/0b423de764d25eb75e0d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FactoryBot.define do
factory :order do
price { 3000 }
end
end
require 'rails_helper'
RSpec.describe Order, type: :model do
before do
@order = FactoryBot.build(:order)
end
describe '購入情報のデータの保存' do
context '成功' do
it "priceがあれば保存ができること" do
expect(@order).to be_valid
end
end
context '失敗' do
it "priceが空では保存ができないこと" do
@order.price = nil
@order.valid?
expect(@order.errors.full_messages).to include("Price can't be blank")
end
end
end
end
RSpec.describe Order, type: :model do
before do
@order = FactoryBot.build(:order)
binding.pry ←
end
describe '購入情報のデータの保存' do
context '成功' do
it "priceがあれば保存ができること" do
expect(@order).to be_valid
binding.pry ←
end
end
context '失敗' do
it "priceが空では保存ができないこと" do
@order.price = nil
@order.valid?
expect(@order.errors.full_messages).to include("Price can't be blank")
binding.pry ←
end
end
Reference
이 문제에 관하여([RSpec] binding.pry 단위 테스트 코드의 기본 용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yait/items/0b423de764d25eb75e0d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)