Question

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.

Was it helpful?

Solution

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 }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top