본문 바로가기

Ruby On Rails/RSpec

(14)
FactoryBot 작성방법 팩토리봇은 rspec을 테스트할 때, rspec reference와 많은 rspec 전문가들이 추천하는 방법입니다. 1. 사용 이유 특히 비즈니스 로직을 테스트할 때, db에 있는 값들을 가져오는 쿼리문을 많이 처리하게 되는데, 그때 테스트 디비에 있는 테이블들에 값을 편하게 넣을 수 있게 해주는 역할을 한다. 실제 모델처럼 사용가능하다. 연관관계를 표현할 수 있다. 내가 원하는 칼럼 값을 넣고 새로운 팩토리 모델을 만들어서 사용할 수 있다. 2. 사용 방법 FactoryBot.define do factory :user do sequence(:userid) { |n| "deali#{n}" } passwd { Faker::Internet.password } name { Faker::Name.name } p..
helper spec 1. 사용 방법 1) 첫 번째는 app/helpers 에 있는 실제 helper.rb 를 테스트해주는 코드를 작성하는 것입니다. - spec/helpers/.._helper_spec.rb 파일을 만들어서 테스트를 하시면 되겠습니다. 2) 두 번째는 중복되는 코드들을 모아서 rspec 코드를 위한 helper로 사용하는 것입니다. - support/helpers/.._helper.rb 파일을 만들어 각 관심사에 대한 헬퍼 내용을 적어서 파일을 차곡차곡 쌓아가면 되겠습니다. support/helpers/session_helper.rb module Feature module SessionHelper ADMIN_PASSWORD = 'as'.freeze def signin admin = create(:admin)..
각 Spec 기본 구조 1. 디렉터리 app/…. 아래 있는 구성과 spec/…. 아래 있는 구성과 똑같이 만들어주시면 되겠습니다. 2. feature spec 구조 RSpec.describe "Certification_business", type: :feature do scenario "index page" do signin visit '/admin/certification_business' four_month_ago = Time.current.months_ago(4).strftime('%Y-%m-%d') expect(find_by_id('date').value).to eq four_month_ago end feature spec은 테스트 시에 자바스크립트 이벤트를 발생시키기 위해 capybara를 사용합니다. 그래서 cap..
RSpec 실행 명령어 자동 bundle exec guard 테스트 코드를 언제 작성했는지는 중요하지 않습니다. 중요한 건 테스트 코드가 있다는 전제하에 guard를 켜서 실제 코드를 변경시키면 알아서 테스트를 진행시켜줍니다. 물론 실제 코드를 작성한 후에 테스트 코드를 작성해도 그 변경을 guard가 인식을 해서 알아서 테스트를 진행시켜줍니다. 그러므로 꼭 TDD를 할 필요는 없습니다. 수동 spring rspec -f doc spec/features/admin/ssm/ab_spec.rb 이렇게 내가 테스트하고 싶은 파일을 직접 입력해서 테스트할 수 있습니다.
RSpec 설정 이야기 1. 개요 이 글은 RSpec으로 test를 편하게 사용했으면 하는 바람에 작성하였습니다. 이 글에서 다룰 내용들은 먼저 RSpec이 추구하는 바에 대해 간략히 설명하고 설정과 관련하여 알고 있어야 하는 내용들을 적을 생각입니다. 또한 각 spec들을 어떻게 작성하면 좋을지에 대해서 하나하나 다루겠습니다. 특히, 통합 테스트와 비즈니스 로직에 대한 내용에 집중할 것입니다. 2. RSpec이란 구현 테스트보단 행동 테스트에 초점을 맞추고 개발자가 편하게 테스트를 할 수 있게 지원해주는 API입니다. 3. RSpec 전체 구조 1. 기본 구조 - 이 것이 기본 구조입니다. 다른 spec을 추가하고 싶다면 spec 아래에 만들어주시면 되겠습니다. 2. gem group :test do gem 'rspec-ra..
RSpec 구조에 대한 이야기 RSpec을 공부할 때 좋은 자료들은 모두 영어로 되어있어서 레퍼런스들과 RSpec 관련 책, 문서들을 읽느라 힘들었었다. 테스트인데 이렇게까지 많은 글들을 읽어봐야 해?라고 생각하며 많은 레퍼런스와 자료를 참고하였다. 그 경험을 바탕으로 이번 글에서는 먼저 RSpec을 어떠한 구조로 작성하는 것이 좋은지에 대해 설명해 보겠다. 아마 RSpec을 처음 공부하시면 어떠한 구조로 작성해야지 베스트 프랙티스일까?라는 고민을 제일 먼저 하게 되실 거다. 나 역시 그랬으니까. 이번 글은 크게 가상 객체를 만들 때 사용해야 하는 gem, 통합 테스트를 할 때 사용해야 하는 spec, 유닛 테스트할 땐 어떻게 구조화하면 되는지에 대해 설명하겠다. 이번 글은 나무보단 숲에 대한 이야기이므로 사용법에 대한 내용은 다음에..