Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中进行功能测试引导star评级_Ruby On Rails_Cucumber_Capybara_Functional Testing - Fatal编程技术网

Ruby on rails 如何在rails中进行功能测试引导star评级

Ruby on rails 如何在rails中进行功能测试引导star评级,ruby-on-rails,cucumber,capybara,functional-testing,Ruby On Rails,Cucumber,Capybara,Functional Testing,我正在尝试用cucumber和capybara在rails中进行功能测试,以测试bootstrap的星级,但我不知道如何做到这一点。 我想描述这一步“当我选择一颗星进行评级时” 鉴于 <%= form_tag("/medics/rating", method: "post") do %> <input id="input-2a" class="rating" name="grade" data-min="0" data-max="5"

我正在尝试用cucumber和capybara在rails中进行功能测试,以测试bootstrap的星级,但我不知道如何做到这一点。 我想描述这一步“当我选择一颗星进行评级时”

鉴于

<%= form_tag("/medics/rating", method: "post") do %> 
                    <input id="input-2a" class="rating" name="grade" data-min="0" data-max="5" data-step="1" data-stars=5 
                        data-glyphicon="false">
                     <%= hidden_field_tag :medic_id, @medic.id %>
                    <%= submit_tag 'Avaliar' , class: 'btn btn-lg btn-success' %>
                <%end%>
            </div>
        </div>
    </div>

我知道这是一个老问题,但我最近遇到了同样的问题并找到了解决办法。简而言之,使用一个JavaScript驱动程序,例如poltergeist/selenium我正在使用selenium,并使用page.evaluate_脚本向输入提供值

我没有使用Cucumber,但是,以下是我使用minitest和capybara/minitest/rails的工作原理:

script = "document.getElementById('review_rating').value = '3'"

click_link 'add a review'
fill_in 'review[take_away]', with: 'Review takeaway'
fill_in 'review[body]', with: 'Review body'
page.evaluate_script(script)

click_button 'Review!'
因为这是100%的水豚语法,所以我使用minitest和你使用Cucumber这两个事实应该没有任何区别

script = "document.getElementById('review_rating').value = '3'"

click_link 'add a review'
fill_in 'review[take_away]', with: 'Review takeaway'
fill_in 'review[body]', with: 'Review body'
page.evaluate_script(script)

click_button 'Review!'