私は Ruby の module のテストは以下のように行っています。

[code: def test_hoge

@dummy_object = Object.new
@dummy_object.extend(HogeModule)
assert ...hogehoge...
end]

他にも以下のような方法も考えられます。クラスを生成してからモジュールを拡張する方法です。

[code: def test_hoge

@new_class = Class.new
@dummy_object = @new_class.allocate
@dummy_object.extend(HogeModule)
assert ...hogehoge...
end]

コードとしては以下がわかりやすいかも。明示的にテスト用のクラスを作成する場合です。

[code: class Dummy

include HogeModule
end

def test_hoge
@dummy_object = Dummy.new
assert ...hogehoge...
end]

Ruby の module は Java や C# には無い概念なのでどういうテストをしたらいいのか悩みますね。

Posted by あかさた
最近のエントリ
最近の読書メモ