Rails 테스트 정보 5 (컨트롤러편)
소개
테스트에 거부 반응이 있기 때문에 먼저 정리하고 싶습니다.
정리해 갈수록 거부 반응이 없어졌을지도...
조금씩 기사를 써 갑니다.
Rails 테스트 정보 1
Rails 테스트 정보 2
Rails 테스트 정보 3
Rails 테스트 정보 4
이미 알고 계신 분, 생략하는 방법 등 알고 계시면 조언 바랍니다.
컨트롤러 테스트에서 확인하고 싶은 것
컨트롤러 테스트 코드를 작성하는 방법
1. 액션내에서 정의하는 인스턴스 변수의 값이 기대한 것이 되는지를 확인한다
2. 액션이 호출된 후 예상 보기가 표시되는지 확인
하나의 액션에 대해 2개 이상의 example(it '' do ~ end)가 필요하다.
spec/controllers/◯◯_controller_spec.rb
describe ◯◯Controller do
describe 'HTTPメソッド名 #アクション名' do
it "インスタンス変数は期待した値?" do
"擬似的にリクエストを行ったことにするコードを書く"
"エクスペクテーションを書く"
end
it "期待するビューに遷移できる?" do
"擬似的にリクエストを行ったことにするコードを書く"
"エクスペクテーションを書く"
end
end
컨트롤러 테스트 코드를 작성하는 방법에 대한 참고 사항
이하, Rails에 정해져 있는 7개의 액션 중 http 메소드가 get인 액션에 관한 테스트 코드를 작성하는 방법입니다.
다른 액션에 관해서는, 수시로 추기해 갑니다.
컨트롤러 테스트 준비
Gemfile에 추가
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'rspec-rails'
gem 'factory_bot_rails'
gem 'rails-controller-testing' ← 追記
end
그리고 bundle install! !
Spec 파일 생성(컨트롤러용)
① spec 디렉토리 이하에 controllers 디렉토리를 작성한다.
② ①내에 ◯◯_controller_spec.rb를 작성한다.
기본 코드 작성
작성한 ◯◯_controller_spec.rb에 이하의 코드를 기입한다.
◯◯_controller_spec.rb
require 'rails_helper'
describe ◯◯Controller do
end
그룹의 경우
groups_controller_spec.rb
require 'rails_helper'
describe GroupsController do
end
테스트를 실행할 수 있는지 확인
ターミナル
% bundle exec rspec spec
위의 명령에서도 문제는 없지만 지정된 테스트 파일 만 실행할 수 있습니다.
ターミナル
% bundle exec rspec spec/controllers/◯◯_controller_spec.rb
라고 출력되면 준비해 k입니다! 이번은 여기까지!
테스트 편, 계속!
(http 메소드가 get로 불리는 액션의 컨트롤러 테스트에 들어갑니다!)
사이고에게
매일 공부중이므로, 수시로 갱신합니다.
여러분의 복습에 활용하실 수 있으면 다행입니다.
Reference
이 문제에 관하여(Rails 테스트 정보 5 (컨트롤러편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/raigakun/items/626c41d1f0d1d5c2bb3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Rails 테스트 정보 5 (컨트롤러편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/raigakun/items/626c41d1f0d1d5c2bb3e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)