Railsテスト駆動開発Rspec
テスト駆動開発の手順
テスト駆動開発では、以下の3ステップで実装を進めていく。
01. 仮実装
以下のテストはGreenになる。
この時点では、count_helloメソッドはreturn 5とかでも大丈夫。
バカみたいなことだけど、まずはテスト自体の有効性を確かめたい。
test 'helloは5文字である。'
assert_true 5, count_hello
end
02. 三角測量
以下のテストは下の方がRedになる。
この時点で、count_helloメソッドがおかしいことに気づく。
自信がなければいくつかパターンを用意しても良いだろうね。
test 'helloは5文字である。'
assert_true 5, count_hello
end
test 'hello!は5文字ではない。'
assert_false 5, count_hello
end
03. 明白な実装
以下のテストは両方Greenになる。
この時点で、count_helloを本格的に実装して、テストを通過させる。
テストが素早く通る最低限の実装で十分。
test 'helloは5文字である。'
assert_true 5, count_hello
end
test 'hello!は5文字ではない。'
assert_false 5, count_hello
end
Rspecの導入
rspecの導入
bundle install
bundle exec rails g rspec:install
最初のテストを作る
fujitatsuは自作のGem
touch blog/spec/sample_spec.rb
require 'fujitatsu'
RSpec.describe Fujitatsu::Translator do
it "入力した文字に濁点をつけて返す" do
expect(Fujitatsu::Translator.shout("どうしてなんだよぉおお!!うわぁぁあああああああああああ"))
.to eql(
"ど゛う゛し゛て゛な゛ん゛だ゛よ゛ぉ゛お゛お゛!゛!゛う゛わ゛ぁ゛ぁ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛"
)
end
end
テストの実行
bundle exec rspec spec/sample_spec.rb
>
.
Finished in 0.00536 seconds (files took 0.15229 seconds to load)
1 example, 0 failures