Как протестировать (Bean) Stalker с помощью rspec? - PullRequest
1 голос
/ 22 марта 2011

У меня есть этот файл с именем jobs.rb

require File.expand_path("../environment", __FILE__)

job "do.stuff" do |args|
  $value = 10
end

Тогда у меня есть этот файл с именем jobs_spec.rb

require File.expand_path("../../spec_helper", __FILE__)

describe "some beanstalk jobs" do
  it "should work" do

    # What to do here?

    $value.should eq(10)
  end
end

Как проверить переменную $value?

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Вы должны запустить beanstalkd на машине, на которой вы выполняете тест.


require "Stalker"

describe Stalker, "job" do
  before :all do
    # Make sure beanstalkd is running
    if `pgrep beanstalkd` == ""
      raise "PRECONDITION NOT MET: beanstalkd not running"
    end

    module Stalker
      def log(msg); end
      def log_error(msg); end
    end
  end

  before :each do
    Stalker.clear!
    $result = -1
    $handled = false
  end

  it "enqueue and work a job" do
    val = rand(999999)
    Stalker.job('my.job') { |args| $result = args['val'] }
    Stalker.enqueue('my.job', :val => val)
    Stalker.prep
    Stalker.work_one_job
    val.should == $result
  end
end
1 голос
/ 22 марта 2011

Я бы проверил, как сама библиотека выполняет свой тест:

https://github.com/adamwiggins/stalker/blob/master/test/stalker_test.rb

Имейте в виду, что здесь используется Test :: Unit, однако вы можете применить те же методы в Rspec.

...