今日の学習
今日は復習 2020/01/24
新しく学んだことがなかったわけではないが、
記事に書くこともなかったので復習も兼ねて今日はテストについて軽く書きたいと思います
rubyのtest
rubyにはもともとmini-testと呼ばれるテストが使えるようになっていますが、とはいえテストといえばやはりRSpecでしょうか。
今日はrails でRSpecをしたことはあると思いますが、ruby単体での導入方法を紹介したいと思います。
まあみなさんご存知だと思いますが。。。
とりあえず、ディレクトリは
Fizz_buzz |-Irb fizz_buzz.rb |-Test
とします。 fizz_buzz.rbのテストで作る予定なので中身は、
def fizz_buzz(n) if n % 3 == 0 && n % 5 == 0 "Fizz Buzz" elsif n % 3 == 0 "Fizz" elsif n % 5 == 0 "Buzz" else n.to_s end end puts fizz_buzz(1) puts fizz_buzz(2) puts fizz_buzz(3) puts fizz_buzz(4) puts fizz_buzz(5) puts fizz_buzz(6) puts fizz_buzz(15)
とします。
ここから導入方法です。
まずtestに移動
% cd test
Gemfileを生成
% bundle init
Gemfileにrspecのgemを記述
# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # gem "rails" gem "rspec", ">= 3.0.0"
インストール
% bunlde install
ファイルの生成
% bundle exec rspec --init
ディレクトリの内容を確認します。
Fizz_Buzz |- Irb |- Test |-Gemfile |-Gemfile.lock |-.spec |-spec |-spec_helper.rb
となっていると思います。
spec_helper.rbの編集
=begin と =end の部分を削除してコメントを外す。(なぜこれをするのかまだわかってないです。)( ; ; )
あとは、テストファイルを作って内容を記述するだけです。
Fizz_Buzz |- Irb |- Test |-Gemfile |-Gemfile.lock |-.spec |-spec |-fizz_buzz_test.rb |-spec_helper.rb
require '../../Irb/fizz_buzz.rb' RSpec.describe 'Fizz Buzz' do example 'fizz_buzz' do expect(fizz_buzz(1)).to eq '1' expect(fizz_buzz(2)).to eq '2' expect(fizz_buzz(3)).to eq 'Fizz' expect(fizz_buzz(4)).to eq '4' expect(fizz_buzz(5)).to eq 'Buzz' expect(fizz_buzz(6)).to eq 'Fizz' expect(fizz_buzz(15)).to eq 'Fizz Buzz' end end
まとめ
まだあいまいのところもあるからゆっくり理解していく。