ios app development singapore,singapore web design services,singapore mobile application developer,singapore mobile app developer,mobile apps singapore,web designer singapore,singapore app developer,singapore web design,singapore web development,graphic designer in singapore,mobile app developer singapore,mobile application development singapore,website development singapore,web design company singapore,web design services singapore,app developer singapore,ios developer singapore,android developer singapore,developer in singapore,mobile apps development singapore,web development company singapore,design firms in singapore,web development singapore,web design singapore,singapore website design,developers in singapore,website developer singapore,app development singapore,mobile developer singapore,website design singapore,website designer singapore,mobile app development singapore,web application singapore,design agency singapore,mobile application developer singapore,ruby on rails developer singapore,mobile game developer 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