2011-03-22 5 views
1

I했습니다 jobs.rb라는이 파일 다음rspec을 사용하여 (Staner) 스토커를 테스트하는 방법은 무엇입니까?

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

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

I했습니다 jobs_spec.rb 나는 $value 변수를 테스트하려면 어떻게

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 

라는이 사양 파일? ,

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

이이 테스트 :: 단위를 사용하고 있음을 명심 그러나 당신은 RSpec에 동일한 기술을 적용 할 수 있습니다

답변

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 
+0

그 솔기가 작동합니다. 감사합니다. – Oleander

1

이 나는 ​​시험의 라이브러리 자체가 실행되는 방법을 확인할 것입니다.

관련 문제