2013-12-11 4 views
0

URL이라는 모델이 있고 루트 페이지에 카운터가 있습니다. 푸시 버튼을 사용하여 카운터 값을 javascript (실제로 coffescript)로 업데이트합니다.rspec은 JavaScript 및 푸셔를 사용하여 값 업데이트를 테스트합니다.

pusher = new Pusher(gon.pusher_key) 
channel = pusher.subscribe("url_counter") 
channel.bind "update_url_counter", (data) -> 
    $(counter).text(data.urlsCount) 
다음

내가 URL을 만들거나 삭제할 때 카운터 값 푸셔에게 메시지를 보내 : 내 루트 페이지에서

나는 샤넬에 가입하고 메시지를 기다리는 자바 스크립트를

Total urls: <span id="url_counter"><%[email protected]_count%></span> 

:

Pusher.trigger("url_counter", "update_url_counter", {urlsCount: Url.all.count}) 

카운터를 포함하는 뷰의 목적이있다 것은 잘 작동합니다. 그러나 나는 그것을 테스트하는 방법을 모른다.

정보가 충분하고 누군가 나를 도울 수 있기를 바랍니다.

미리 감사드립니다.

답변

0

내가 테스트 한 방법입니다. URL에 푸셔 테스트 제대로 그리고

url = "http://test.com" 

expect(Pusher).to receive(:trigger).with("urlmini", "update_url_counter", {urlsCount: 1}).and_return {} 

visit new_url_path 
fill_in "url_text", with: original 
click_button "submit_url" 

라고 생성 될 때

한 손에 내 자바 스크립트가 제대로 작동하고 있는지 내가 미는

visit root_path 
within "#url_counter" do 
    expect(page).to have_content "0" 
end 
fake_counter = 10 
Pusher.trigger("urlmini", "update_url_counter", {urlsCount: fake_counter}) 
within "#url_counter" do 
    expect(page).to have_content fake_counter 
end 
전화 확인했다