나는 다음과 같은 RSpec에 조각이 있습니다에 의해 트리거되는 액션을 기다리지 않는다 "잠 1"카피 바라없이카피 바라가 click_button에 제출 작업을 완료 할 때까지 기다리지 않고 "저장"
describe "Save should create a ClassificationScheme" do
subject { lambda { click_button "Save"; sleep 1 } }
it { should change(ClassificationScheme, :count).by(1)
end
을 저장 버튼이 나타나고 사양이 실패합니다. 수면 1은 괜찮지 만 더 좋은 해결책이 있습니까?
참고 :이 테스트는 selenium webdriver를 사용하는 Firefox에서 실행됩니다.
내 버전 :
- 레일 4.1.12
- RSpec에 2.99.0
- 카피 바라 2.4.4
- 셀레늄 webdriver 3.2.1
- 파이어 폭스 51.0.1
wait_for_ajax는 매우 드물게 사용되는 버팀목입니다. 특히 점점 더 많은 라이브러리/프레임 워크가 JQuery를 사용하는 대신 일반 JS로 이동하기 때문에. 올바른 해결책은 페이지의 시각적 변화에 대한 기대치를 설정하는 것입니다. –
동의하지만 질문에는 서버 측 변경 테스트 만 포함되었습니다. 이상적으로는 시각적 표시기가있을 것이고, 이것이 기능 사양에서 찾아야 할 것입니다. 레코드 갱신과 같은 서버 측 변경에 대한 테스트는 요청 스펙에 속합니다. –