Test::Unit を使ってテストを書いてみた
結局 Test::Unit を使った方法に。
setup メソッドで少し準備が必要だけれども、これでプラグインのテストが
できるようになった、と言えるかな。
あとは、プラグインに記載するドキュメントのフォーマットかな。
#!/usr/bin/ruby $rire_home = File.expand_path(File.dirname($0) + '/..') $LOAD_PATH.push $rire_home require 'test/unit' require 'lib/rire' class TestSubscribeConst < Test::Unit::TestCase def setup @dsl = Rire::DSL.new($rire_home + '/plugin') @dsl.instance_eval <<-EOD def execute(src) instance_eval(src, 'unit.dsl', 1) end EOD end def test_no1 src = <<-SCENARIO define_task do subscribe.const [ {:link => 'http://www.example.com/1'}, {:link => 'http://www.example.com/2'}, {:link => 'http://www.example.com/3'}, ] end SCENARIO ctx = @dsl.execute(src) assert_equal('http://www.example.com/1', ctx.feed.entry[0][:link]) assert_equal('http://www.example.com/2', ctx.feed.entry[1][:link]) assert_equal('http://www.example.com/3', ctx.feed.entry[2][:link]) assert_equal(3, ctx.feed.entry.length) end def teardown end end