2012-11-19 3 views
1

...RSpec에 테스트 내가 RSpec에에이 테스트를 실행하는거야

it 'get email is successful' do 
    get :email 
    response.should be_success 
    response.should render_template('email') 

끝 컨트롤러 코드는 다음과 같습니다

실패 ..

def email 
    respond_to do |format| 
    format.js 
    end 
end 

내 터미널에서 나는 다시 돌아올거야 ....

3) PostsController checking to see if response for post email is successful 
Failure/Error: response.should be_success 
    expected success? to return true, got false 
# ./spec/controllers/posts_controller_spec.rb:116:in `block (3 levels) in <top  
(required)>' 

테스트를 수행하기 위해 여기에 무엇을 놓치고 있습니까? 그것은 명백한 것이어야합니다. 내보기 파일의 제목은 email.js.erb입니다. 이 동작은 AJAX 호출을위한 것입니다.

답변

3

시도 :

xhr :get, :email 

요청이 계정에 예상되는 응답의 형식을 취하지 않을 것으로 보인다. Rspec에서 AJAX (XHR) 요청을 시뮬레이트하려는 경우이를 수행하는 방법입니다.

+0

감사합니다. 그것은 작동합니다. – jason328

3

컨트롤러가 JS 요청에 대해서만 반환하도록 구성되어 있으며 테스트에서 HTML 응답을 요청하고 있습니다. 당신은 당신의 사양에

get :email.js

이 있어야합니다.

+0

이것이 작동하지 않으면'get : email, : format => js'을 시도하십시오. –

+0

두 솔루션 모두 정의되지 않은 메서드 js를 반환합니다. – jason328

+0

은': format => : js'이어야합니다. – sergeych

관련 문제