mobile developer singapore,website design singapore,singapore web design services,mobile app developer singapore,developer in singapore,developers in singapore,web development singapore,web application singapore,web designer singapore,singapore website design,web development company singapore,singapore mobile app developer,mobile game developer singapore,website developer singapore,singapore app developer,design agency singapore,web design services singapore,mobile apps singapore,mobile app development singapore,app development singapore,singapore web design,ios app development singapore,web design singapore,mobile application developer singapore,mobile application development singapore,website development singapore,mobile apps development singapore,singapore mobile application developer,ios developer singapore,app developer singapore,ruby on rails developer singapore,design firms in singapore,singapore web development,website designer singapore,web design company singapore,android developer singapore,graphic designer in singapore

Testing for javascript alerts with Cucumber & Capybara

Using Cumcumber + Capybara to run automated testing is a TRENDY now. But you might have trouble finding a way to assert a javascript alert, for e.g. a link created by the link_to … :confirm => “Are you sure?” and similar.

Don’t worry, here is a work around to confirm Javascript alert and dialog in your Capybara tests, simply override alert and confirm methods:

Given /^I will confirm on next step$/ do
begin
evaluate_script(“window.alert = function(msg) { return true; }”)
evaluate_script(“window.confirm = function(msg) { return true; }”)
rescue Capybara::NotSupportedByDriverError
end
end

Rescue here is added in case, you run want to run your tests without javascript (e.g. default capybara driver). If you run feature without javascript simply nothing will happen.

Moreover, using this technique you can simulate moving mouse over some elements. It is useful, when you have links that appears when certain div is under the mouse cursor.

Then /^I move mouse over “([^”]*)”$/ do |label|
begin
Capybara.current_session.driver.browser.execute_script(“$(‘#{label}’).mouseover();”)
rescue Capybara::NotSupportedByDriverError
end
end

That’s it. Happy testing !

%d bloggers like this:
WordPress Security