#17: チェリー本 3 章、テストライブラリについて

やったこと(Done)

  • チェリー本を 10 章まで、ざっと眺めた。
  • 3 章の fizzbuzz のテストを書くところを写経した。
  • Windows マシンにも Ruby をインストールした。
  • Windows で単純なキー入力を繰り返す作業が発生したので、win32ole を使って Ruby から入力させるスクリプトを書いた。
    • グローバル変数を使うなとか、メソッドが長いとか、rubocop に色々指摘された。

わかったこと(Fact)

require のパス解釈

最初、テストコードの方で require './lib/fizzbuzz.rb' となるのが説明文を読んでも理解できなかった。

Ruby を実行しているディレクトリがパスの起点となります。

というのは $ ruby foo.rb というコマンドを実行しているディレクトリのこと。

例えば、以下のディレクトリ構造だとすると、

ruby-book/
├── lib
│   └── fizzbuzz.rb
└── test
    └── fizzbuzz_test.rb

ruby-book にいて $ ruby test/fizzbuzz_test.rb と実行する場合は ruby-book から見ると libtest はカレントディレクトリにあるので、fizzbuzz_test.rb

require './lib/fizzbuzz.rb'

となる。

もし test ディレクトリにいて $ ruby fizzbuzz_test.rb とする場合は

require '../lib/fizzbuzz.rb'

となる。

テストライブラリ

  • Minitesttest-unit も標準添付されている。
  • test-unit は xUnit ベースとのこと。

自分は .NET で xUnit を利用することがあるので、この 2 つのうちから選択するときは test-unit の方を使っていこう。

標準添付されているライブラリ

3 種類あるらしい。

  1. ただの標準添付ライブラリ
  2. default gem
  3. bundled gem

詳しくは下記の記事を参照のこと。

参考文献(References)

その他

そのうちやること(Someday)

  • [ ] VSCode のデバッガの設定 launch.json
  • [ ] RubyMine インストールしてみる?
  • [ ] Ruby を書くためのエディタの設定(Emacs
  • [ ] bash の設定ファイルに必要なエイリアスを追加する。