【Rails】 테스트에 사용할 더미 데이터를 준비한다 【Faker】

3488 단어 RSpecFaker루비Rails

소개



RSpec등으로 테스트할 때에, FactoryBot등에서 미리 데이터를 준비하는 일이 있습니다만, 그 때에 랜덤 데이터를 좋은 느낌으로 만들어 주는 Faker의 사용법에 대해서 써 갑니다.

준비



gem을 설치하기만 하면 됩니다.

Gemfile
group :development, :test do
  # (略)
  gem 'faker'
end

터미널
$ bundle install

사용법



rb 파일에 Faker::[ジャンル].[タイトルなど]를 입력하면 OK입니다.
어떤 것이 준비되어 있는지는 공식 참조 에서 확인해 보세요.

README의 사촌에 샘플이 늘어서 있으므로, 사용하고 싶은 것을 클릭해 링크처의 표시대로에 사용하는 것입니다.


사용해 보지 않으면 이해하기 어렵기 때문에 실제로 사용해 보겠습니다.
이번에는 영화를 사용하고 싶습니다. README의 Movies를 클릭하면 아래와 같이 같은 페이지의 Movies란으로 날아갑니다.

이번에는 Faker::movie를 사용합니다.Faker::movie 를 클릭하여 상세 페이지로 이동합니다.

이 페이지에 쓰여진 대로 기술하면 랜덤하게 데이터를 취득해 줍니다.Faker::Movie.title 에서 영화 제목을 받으세요.

콘솔에서 확인합니다.

터미널
$ rails c



이런 느낌으로 취득해 줍니다.

포켓몬이나 스타 워즈 같은 데이터도 있으므로 재미 있습니다.



FacrotyBot에서 사용하는 방법



FactoryBot을 사용할 때는 아래와 같이 쓰면 OK입니다.

book.rb
FactoryBot.define do

  factory :book do
    title     { Faker::Book.title }
    author    { Faker::Book.author }
    publisher { Faker::Book.publisher }
  end

end

마찬가지로 seed 파일이라도 사용하면 초기 데이터를 랜덤하게 여러가지 작성할 수 있습니다.

좋은 웹페이지 즐겨찾기