开发者

cucumber , jQuery and redirects

I have a select tag on my page, I have made via jQuery on domready a listener for the change event. In this listener I redirect the user to the same page with a parameter in the url.

When I test the functionality manual, it works very well.

When I run the test, it fails, the redirect doesn't work.

How I can make it work ?

@javascript
  Scenario:
    When I select "2010" from "year_select"
    And I wait 5 seconds
    Then "2010" should be selected for "year_select"
    Then I should see "time_sheet?year=2010" with html

The test fails, I see time_sheet?year=2011 (the default value) in my html source, manual I see the correct value. It is not updated via Javascript, but according to te year variable passed in the url (after the redirect)

My jQuery code:

jQuery(document).ready(function(){
  var yearSel开发者_开发百科ect = jQuery("#year_select");
  yearSelect.change(function(){
    window.location = "/time_sheet_admin?year="+yearSelect.val();
  });
});

What I make wrong ?


I think u have missed out _admin in the scenario. Use time_sheet_admin instead of time_sheet in the scenario. If my suggestions is useless sorry for that.


What I usually do for testing complex JS stuff is to put them in a function and then test if that function was called:

selectChanged = function() {
  window.location = "/time_sheet_admin?year="+jQuery("#year_select").val();
}

*note no need for the variable assignment because you only called it once.

then in your feature:

Then I should see "time_sheet?year=2010" in the url

step definition:

When /Then I should see "time_sheet?year=2010" in the url/ do |seconds|
  page.execute_script("selectChanged()") 
end
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜