4. Rspec と Test::Unit の違い Test::Unit クラスやメソッ ドを定義する require 'test/unit' class ArrayTest < Test::Unit::TestCase def setup @empty_array = [] end def test_empty? assert(@empty_array.empty?) end def test_size assert_equal(0, @empty_array.size) end def teardown @empty_array = nil end end describe Array, "when empty" do before do @empty_array = [] end it "should be empty" do @empty_array.should be_empty end it "should size 0" do @empty_array.size.should == 0 end after do @empty_array = nil end end RSpec ブロック付きメソッド呼び出しなど、 Ruby スクリプトになっている
10. テスト駆動開発 (TDD) ① 設計の技法: 設計とはソースコードを書くこと。テストもデバッグも設計。 設計が終わるのは、コーディングが完了しかつテストが通るまで。 ② 開発の進め方: テストが開発を駆動する。テストが開発を引っ張る。 クは駆動のク。駆動っていうのが大切。 この2つを押さえておくだけで大丈夫 ① テストに失敗したときだけコードを書く ② 重複を取り除く 2つの主張 2つのルール :
11. テスト駆動開発 3つのモード + 1 失敗->通過->きれいに Red : テストに失敗している状態 Green : コードが動作している状態 Refactoring : コードの意味を変えずに綺麗に。動いた状態を維持して中身を綺麗に Think 作るための作戦などをまず考える。 そしてテストを書き、通るようにコードを書き、リファクタリングで綺麗にしてまた考える。 think -> red -> green -> refactoring の繰り返し。 今、どのモードなのかを意識するのが大切 3つのモードでは明示されていない4つ目のモードがある。
15. Rspec の使い方 インストール $ sudo gem install rspec describe Class, " コンテキスト ( どういう状態の時に )" do before(:each) do # コンテキストのお膳立て end it " 期待する振る舞いの名前 " do # ここに期待する振る舞いを書く end end コード