2012-09-20 3 views
0

레일 3는, 생산에서 작동, 개발 (레일 3 응용 프로그램)

I 양식 내부의 목록이 있습니다

<%= form_for @article do |f| %> 
    <ul> 
    <% @product.each do |p| %> 
     <li id="product_<%=p.id%>"> 
     <div> 
     <%= f.radio_button(:p_id, p.id, class: 'hidden') %> 
     </div> 
     </li> 
    <% end %> 
    </ul> 
    <%= f.submit 'submit', :id=>"submit_category", :class=>'hide' %> 
<% end %> 

내가 있도록 자바 스크립트 함수를 추가를 사용자가 li 요소를 클릭하면 라디오 버튼이 선택되고 양식이 제출됩니다.

<script type="text/javascript"> 
    $('li').click(function() { 
    $(this).find('input[type=radio]').attr('checked', true); 
    $('#submit_category').click(); 
    }); 
</script> 

이 완벽하게 생산, 개발에 작동하지만, 테스트 환경에 실패 : 라디오 버튼이 선택되지 않은 양식이 제출,하지만, 그래서 나는 유효성 검사 오류가 발생합니다.

내 테스트는 Cucumber + Selenium + Capybara로 수행됩니다. 테스트 행 :

When /^I click on the "(.*?)" product$/ do |product_name| 
    @product = Product.find_by_name(product_name) 
    page.find('li', id: "product_#{@p.id}").click 
end 
+0

나는이 질문이 오래된 것을 알고 있지만 검증 오류가 있거나 테스트 자체에 오류가 있습니까? 테스트에서 JS를 사용할 수 있다고 가정합니다. – Sia

답변

0

여기에 맞춰서 $ (function() {..your code}) (domready) 콜백 도움이 필요합니까?

+0

아니요, 작동하지 않았습니다. – wachichornia