프로덕션 환경에서 Redis + Resque를 사용하고 있으며 작업이 대기열에 들어가고 올바르게 실행되는지 테스트하려고합니다. 나는RSpec의 Resque + Redis 테스트
Resque.jobs(:queue_name).size.should == 0
post :some_action # This action causes a Resque job to be enqueued
# Test Enqueuing
Resque.jobs(:queue_name).size.should == 1
Resque.jobs(:queue_name).last.klass.should == "MyJob"
Resque.jobs(:queue_name).last.args.should == [1, "Arg_2"]
# Test performing
Resque.jobs(:queue_name).perform_all
# test the effect of running the job
은 어떻게 테스트 환경에서 레디 스 + Resque 시작합니까 이런 식으로 뭔가를 찾고 있어요? 나는 항상 수동으로 redis 서버를 실행하는 사람들이 아닙니다. config.before(:suite)
에서 redis 서버를 실행하고 실행하는 솔루션을 시도했지만 Redis-server는 결코 시간 내에 시작하지 않으며 Resque는 Redis에 연결할 수 없다는 불만을 제기합니다.
나는 Resque.inline
을 사용해 보았지만 1) 작업이 대기열에 넣어 졌는지 테스트 할 수 없었습니다. 2) 대기열에있는 작업을 항상 대기열에 넣었습니다. (올바른 대기열에서 작업이 끝났음을 테스트하고 싶습니다.)
나는 레디 스 또는 레스큐 (나는 그들이 작동한다고 확신한다)를 테스트하려하지 않고, 내 애플리케이션 코드를 시험하고있다. 내 응용 프로그램의 일부 작업으로 인해 올바른 인수로 Resque에 대기중인 작업이 발생하고 작업이 실행되면 결과 상태 (예 : 누군가의 계정 업데이트)가 올바른지 테스트하고 싶습니다. – dg428
좋습니다. 그리고 어떤 작업으로 인해 인수가 대기중인 작업을 테스트하려는 경우, 내가 설명한 것은 정확하게 작업이 대기 중인지 테스트하기 위해 수행해야하는 작업입니다. 그런 다음 별도의 단위 테스트에서 작업 * 내의 코드 *를 테스트하십시오. :) – CDub