Thorで書いたタスクのテストをする方法
Thorでタスクを書くとそのメソッドが普通のRubyのようには呼べません。それでもやっぱりテストは書きたいのでThorのspecをいろいろ見てたらありました。
# encoding: utf-8 require "rubygems" require "thor" require "rspec" require "stringio" class Sample < Thor desc "name", "sample name" def name puts "pochi" end end describe Sample do it "should display 'pochi'" do capture(:stdout) { Sample.new.invoke("name") }.strip.should == "pochi" end end