【问题标题】:How to test (Bean)Stalker using rspec?如何使用 rspec 测试(Bean)Stalker?
【发布时间】:2011-03-22 20:42:28
【问题描述】:

我有一个名为 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 变量?

【问题讨论】:

    标签: ruby-on-rails ruby rspec beanstalkd


    【解决方案1】:

    你必须在你运行测试的机器上运行 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
    

    【讨论】:

      【解决方案2】:

      我会检查库本身是如何运行它的测试的:

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

      请记住,这是使用 Test::Unit,但是您可以在 Rspec 中应用相同的技术。

      【讨论】:

        猜你喜欢
        • 2018-07-30
        • 2018-08-23
        • 2013-12-07
        • 2019-12-10
        • 2013-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多