#はじめに
RubyやRailsでポートフォリオを作成していく上で、避けては通れないテスト実装。
Railsの標準装備はMinitestですが、実際の現場で使うことを考えて、RSpecを採用される方が多いと思います。
そこで、
「RSpecとはどういうものなのか?」
ということを、基本的な四則演算の構文を見ながら解説していきます。
#対象
これからRSpecを学ぼうと思っている人
#環境
Ruby 2.6
RSpec 3.9
#RSpecの構文例
describe
は、国語でいうところの『章』のような意味合いです。
「この章では、いったいどんなテストコードが書かれているのか?」ということを表しています。
it A do
で、「Aという結果をもたらすテストコードである」という意味を表します。
expect X.to eq Y
で、「X = Y」という意味を持ったテストコードになります。
eq
はマッチャと呼ばれ、「=」にあたる意味を持っています。
例を見ていきましょう。
Rspec.describe '四則演算' do
describe '足し算' do
it '1 + 1 は 2 である' do
expect(1 + 1).to eq 2
end
end
describe '引き算' do
it '2 - 1 は 1 である' do
expect(2 - 1).to eq 1
end
end
describe '掛け算' do
it ' 2 × 3 は 6 である' do
expect(2 * 3) to eq 6
end
end
describe '割り算' do
it '6 ÷ 2 は 3 である' do
expect(6 / 2) to eq 3
end
end
end
逆に間違っていることを期待する場合には、not to
を使います。
Rspec.describe '四則演算' do
describe '足し算' do
it '1 + 1 は 3 ではない' do
expect(1 + 1).not_to eq 3
end
end
describe '引き算' do
it '2 - 1 は 0 ではない' do
expect(2 - 1).not_to eq 0
end
end
describe '掛け算' do
it ' 2 × 3 は 8 ではない' do
expect(2 * 3).not_to eq 8
end
end
describe '割り算' do
it '6 ÷ 2 は 2 ではない' do
expect(6 / 2).not_to eq 3
end
end
end
#おわりに
RSpecは、独自の構文のため、中々とっつきづらいかと思われます。
まずは分かりやすい構文から理解し、RSpecに慣れていきましょう。