Open4
RSpecキャッチアップ
業務でRSpecを利用することになるためキャッチアップする。
下記からの続き。
RSpecのデバック方法
binding.irb
を差し込む
require 'rails_helper'
RSpec.describe Book, type: :model do
describe "Book#title_with_author" do
it "Book#title_with_authorを呼び出したとき、titleとauthorを結んだ文字列が返ること" do
book = Book.new(title: "RubyBook", author: "matz")
binding.irb # ここで実行がとまってirbを利用できる
expect(book.title_with_author).to eq("RubyBook - matz")
end
end
end
describeとcontextの使い分け
- describeはメソッドで区切る
describe "Book#title_with_author" do
- contextは条件で区切る
context "Book#titleが文字列のとき" do end
example_test.rb
describe "Book#title_with_author" do # メソッド
context "Book#titleが文字列のとき" do # 状況を説明する
it "titleとauthorを結んだ文字列が返ること" do # 結果を説明する
book = Book.new(title: "RubyBook", author: "matz")
expect(book.title_with_author).to eq("RubyBook - matz")
end
end
context "Book#titleがnilのとき" do # 状況を説明する
it "空のtitleとauthorを結んだ文字列が返ること" do # 結果を説明する
book = Book.new(author: "matz")
expect(book.title_with_author).to eq(" - matz")
end
end
end
Railsアプリでよくつかうテストは以下の3種類
- Model spec: モデルのテスト
- System spec: ブラウザをつかったE2E(=アプリ全範囲)テスト
- Request spec: ブラウザをつかわないE2Eテスト
ModelspecとRequest specとについて学びたい。