2015-01-09 3 views
2

이 실패 테스트는 로컬에서 잘 통과하지만 원격 테스트 서버에서는 실패합니다. 이 Rails 오류에 대한 기대는 무엇을 의미합니까?

not all expectations were satisfied 
    unsatisfied expectations: 
    - expected exactly once, not yet invoked: Resque Client connected to redis://localhost:6379/0.enqueue(StoreArticulate::Bookmarks, 10, 'SecondBookmark000011101010101') 
    satisfied expectations: 
    - allowed any number of times, not yet invoked: #<Mock:generic pusher channel>.trigger(any_parameters) 
    - allowed any number of times, not yet invoked: Pusher.[](any_parameters) 
    - allowed any number of times, not yet invoked: Panda::Video.find(any_parameters) 
    - allowed any number of times, not yet invoked: Resque Client connected to redis://localhost:6379/0.enqueue(any_parameters) 
test: #bookmarks should update an existing bookmark. (QuizzesControllerTest) 
test/functional/quizzes_controller_test.rb:37:in `block (2 levels) in <class:QuizzesControllerTest>' 

코드의 라인이 다음과 같이에 읽기를 의미

: 그래서

내 오류는 너무 읽고 ..이 원격 레디 스/resque 구성에 대해 될 수 있으리라 믿고있어

should 'update an existing bookmark' do 

    Resque.stubs(:enqueue) 
    Resque.expects(:enqueue).with(StoreArticulate::Bookmarks, @quiz.id, @second_bookmark[0]).once 

    post :state, registration: @quiz.id, method: 'POST', content: @first_bookmark 
    post :state, registration: @quiz.id, method: 'POST', content: @second_bookmark 
end 

누군가가 정확히 여기에서 잘못되고 무엇을 해결할 수 있을지 설명 할 수 있습니까?

답변

1
  • 예상 정확히 한 번만, 아직 호출되지 : // localhost를 : 레디 스에 연결 Resque 클라이언트 6379/0.enqueue (StoreArticulate : 책갈피, 10, 'SecondBookmark000011101010101')

원격 환경에서 Resque가 실제로 localhost : 6379에서 실행중인 Redis에 연결할 수 있기를 기대하면서 테스트를 읽었습니다. 과거에는 fakeredis과 같은 것을 사용하여이 문제를 해결했습니다. Redis 자체를 스텁링하지 않고 체크 아웃 할 가치가 있습니다.