问题
Found this simple way to run a separate process in Sinatra: Run background process in Sinatra
get '/start_process'
@@pid = Process.spawn('external_command_to_run')
end
How would you test this in RSpec?
Ruby 1.9.3.
回答1:
Extract a class which does the background processing and unit-test it. Then test expectation that your action invokes method on this class
Some "pseudocode":
before do
MyWorker.should_receive(:perform)
end
specify { get :something }
来源:https://stackoverflow.com/questions/13773659/how-to-test-background-process-in-rspec