テストコード インテンド クラス 正規表現 require
テストコードをやった。
・インストール
gem install test-unit
参考 : Ruby - Test::Unitでテストを書く - Qiita
・使い方
テストはファイルを分けておこなう
テストしたい部分があるファイルをrequire_relative で読み込む
class Practice
def self.greeting
Hello, world!'
end
end
class TestPractice < Test::Unit::TestCase
def test_greeting
assert_equal 'Hello, world!', Practice.greeting
end
end
上のクラス内のメソッドをテスト
assert_equal 'Hello, world!', Practice.greeting
ここで、
assert_equal (期待値), (実際の値)
上記のようにかく。
参考:
RSpec - Ruby標準のテスティングフレームワークで手軽にテストコードを書く方法 - Qiita
参考 :
RSpec - Ruby標準のテスティングフレームワークで手軽にテストコードを書く方法 - Qiita
・成功パターン)
Finished in 0.001133 seconds.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
・期待値と違うパターン)・・・エラーではない
================================================================================
Failure: test_greeting(TestSample)
testoftest.rb:12:in `test_greeting'
9:
10: class TestSample < Test::Unit::TestCase
11: def test_greeting
=> 12: assert_equal 'Hallo, world!', Sample.greeting
13: end
14: end<"Hallo, world!"> expected but was<"Hello, world!">
diff:
? Hallo, world!
? e
================================================================================
・ファイルをrequireするとき
./をつけないと読み込めない
./はカレントディレクトリを表す
・複数行をインデント
v でビジュアルモードにして、範囲を選択
>、<キーで移動できる
・クラスを分ける
クラスを分けると、テストしやすかったりクラスの継承ができるのでいい。
クラス内のメソッドは、1つを呼び出したらほかのも呼ばれるよう関連づけると便利「
・正規表現
/A/、は部分一致
/^A$/は完全一致
・インテンド
半角スペース2文字でインテンド
ブロックがかわったら1つインテンドする。
途中からブロックを追加する場合は、上記の複数行インテンドを用いると効率的