09/05/06 21:40:48
>>764
素晴らしい先駆者であるがゆえに失速の影響が…
えー、「内部の○○メソッドを今は動作したことにしたい」というカジュアルな用途には、stub! が使えると思われ
require 'spec'; require 'open-uri'
class Hoge
def get(uri); open(uri).read; end
def pick_title(uri); get(uri).scan(/<title>(.+?)<\/title>/).to_s; end
def main
pick_title('URLリンク(www.example.com)')
end
end
# -----------------------
describe Hoge do
before :all do
@hoge = Hoge.new
end
describe "#main: サーバからHTMLを取得してタイトルを表示する" do
it "たいとる!" do
@hoge.stub!(:get).and_return('<html><title>たいとる!</title></html>')
@hoge.main.should eql('たいとる!')
end
end
end
「@hoge の get メソッドが呼ばれたときは処理を横取りして and_return の引数を代わりに返すようにする」という記述
あんま小難しいこと考えなくていいのでとっても便利