Как вы тестируете код, который разветвляется с помощью rspec

У меня есть следующий код

  def start_sunspot_server
    unless @server
      pid = fork do
        STDERR.reopen("/dev/null")
        STDOUT.reopen("/dev/null")
        server.run
      end

      at_exit { Process.kill("TERM", pid) }

      wait_until_solr_starts
    end
  end

Как я могу эффективно протестировать его с помощью rspec?

Я кое-что подумал относительно

Kernel.should_receive(:fork)
STDERR.should_receive(:reopen).with("/dev/null")
STDOUT.should_receive(:reopen).with("/dev/null")
server.should_receive(:run)

и т. д.

5
задан ErsatzRyan 28 May 2011 в 00:33
поделиться