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 回答