1

私は最近 Ruby を掘り下げていて、学んだことを利用するために何かをまとめようと取り組んでいます。

ランダムな引用を出力する Sinatra アプリを持っています。それが正しい道だと思われるので、これについていくつかの RSpec テストを行いたいと思います。

クラスをテストするために、私は次のようなことをしました:

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

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

だから私はこれを取って、基本的な Sinatra アプリに入れました。私の RSpec ファイルは次のようになります。

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

    def app
        Sinatra::Application
    end

    it "prints random quote" do

      get '/'
         ????
    end
end

私の質問は次のとおりです。「get '/' でランダムな側面をスタブするにはどうすればよいですか?

みんなありがとう!

4

1 に答える 1

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
于 2012-06-30T15:32:15.373 に答える