我在試驗,我試圖從RSpec啓動虛擬Sinatra應用程序,並在規範完成時將其殺死。喜歡的東西:從測試/規範或另一個ruby腳本啓動sinatra
# spec/some_spec.rb
before(:all)
# launch sinatra dummy app
end
after (:all)
# kill sinatra dummy app
end
it 'should return list of whatever' do
expect(JSON.parse(make_request('0.0.0.0:4567/test.json')))
.to include('whatever')
end
我可以使用system("ruby test/dummy/dummy_app.rb")
,但我怎麼能只殺死進程?有誰知道我可以在測試(或從另一個ruby腳本)內啓動Sinatra嗎?我瞭解WebMocks,但我想看看是否可以通過這種方式讓我的測試工作。
謝謝你的鏈接到sinatra RSpec部分,我之前紅了,但我沒有意識到它,然後我可以使用它我想用它的方式。 – equivalent8 2014-10-02 13:58:29
嗨,對不起,我接受了你的回答,但我發現它並沒有完全滿足我的需求。我正在寫的更多的是煙霧測試,我需要對實際的實時服務器進行實際的請求。我正在重新考慮遺留代碼,他們在很多地方使用'system'curl whatewer.com「'我想重構一下,首先我需要確保我不會破壞現有的東西。然而這是個好地方(所以+1)。 – equivalent8 2014-10-02 14:27:31
對我認爲你想要做的事做出了更新。 – 2014-10-02 15:56:21