2012-06-30 67 views
1

最近我一直在挖掘Ruby,並且正在努力將一些東西扔在一起,以便使用我正在學習的東西。在Sinatra測試隨機輸出

我有一個輸出隨機報價的Sinatra應用程序。我想對此進行RSpec測試,因爲這似乎是正確的道路。

爲了測試類,我做了這樣的事情:

it "prints a random line" do 
    QuoteFile.any_instance.stub(:random).and_return(@quote.to_s) 

    @quotefile.random.should == "Sample quote" 
end 

所以我已經採取了這一點,並把它變成一個基本西納特拉的應用程序。我的RSpec的文件看起來像這樣:

describe 'Quote App' do 
    include Rack::Test::Methods 

    def app 
     Sinatra::Application 
    end 

    it "prints random quote" do 

     get '/' 
     ???? 
    end 
end 

我的問題是:我如何存根出在「獲取 '/' 隨機方面

謝謝你們

+0

怎麼樣使用像webmock工具 – allenwei

回答

2

使用

QuoteFile.any_instance.stub(:random).and_return("This is a random quote") 

在您的Sinatra測試中,並檢查輸出結果如下:

describe 'Quote App' do 
    include Rack::Test::Methods 

    def app 
    Sinatra::Application 
    end 

    it "prints random quote" do 
    QuoteFile.any_instance.stub(:random).and_return("This is a random quote") 
    get '/' 
    last_response.body.should =~ /This is a random quote/ 
    end 
end 
+0

哦哇..我想我應該只是試過相同的代碼。這工作。謝謝一堆! –