Rubyで'test/unit'を使ったクラス毎の単体テストはどうやればいいのでしょうか。


A.rb,B.rb,C.rbにそれぞれclass A,class B,class C
があるとしたら
test_A.rb,test_B.rb,test_c.rbを作って順番にtest_A.rbから実行していくのでしょうか。
ファイルがたくさんできてしまったので、何かいい手がないでしょうか?


例えばtest_A.rbの中身はこんな感じです。
>>
require 'test/unit'
require 'A'


class A < Test::Unit::TestCase
def setup
@obj = A.new
end
def test_func1

    end
end
<<

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/02/07 15:18:59
  • 終了:2007/02/14 15:20:06

回答(2件)

id:tmasao No.1

tmasao回答回数77ベストアンサー獲得回数202007/02/07 15:46:21

ポイント35pt

Rubyリファレンスマニュアル - Test::Unit

特定のディレクトリに集めておいて、

Test::Unit::AutoRunner を使ってみてはいかがでしょうか?

id:garyo

ありがとうございます。

\-+-クラスファイル

 |

+--somedir 単体テスト用ファイル

とフォルダを作成しておくのでしょうか。

単体テスト用のrequire 'A'は require '../A'と書き直しが必要ですか?

2007/02/07 16:18:46
id:nodawi No.2

nodawi回答回数2ベストアンサー獲得回数02007/02/08 02:11:38

ポイント35pt

テストファイルが複数ある場合、私はrequireするだけのことが多いです。

Dir.glob("test_*.rb").each do |file|
  require file
end

クラスを記述したファイルの位置については、rubyコマンドのオプション -I、またはグローバル変数($:)を使って、クラスのファイルの位置をライブラリパスへ追加することで直接 require にディレクトリを指定しなくて済みます。Rubyリファレンスマニュアル - 組み込み変数に詳細があります。

$:.unshift("..")
require "A"      # 最初に ../A.rb をrequireしようとします。
id:garyo

ありがとうございます。

最初から同一フォルダーで作ったので、別なフォルダーを作って移動すると動かなくなりました。

2007/02/08 08:32:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません