This step will pass if the specified select is sorted. Then /^the "(.*?)" select should be sorted$/ do |label, negate|

...gem you often hook onto events like this: update.before do do_something end For testing such things in your controller you should -- as always -- not trigger something that eventually calls...

Capybara will match elements outside of a page's tag. For example, the step definitions below match nodes in a...

Our collection of the most useful Cucumber steps, Spreewald, now supports exact matching of form fields and lets you use...

...you need additional form fields (like tax IDs) to bill customers in another language. Tests Tests should continue to use the base language you had before starting localization. Don't...

...rewrite all tests and don't test every screens with every language unless repeatedly broken translations becomes a pain point. Do test non-trivial language-specific customizations like the parsing...

progfu.com

I am talking about development speed. When your application starts growing and you start adding gems, it starts to take...

The step definition below lets you say: Then I should see a field "Password" But I should not see a...

This is surprisingly difficult when there is a with the same text on the page, but you really want to...

The step definition below allows you to write: Then I should see a link labeled "Foo" But I should not...

Use bundler > 1.15 to fix Gem::LOADED_SPECS_MUTEX (NameError). Given the following project: ruby -v ruby 1.8.7

opensoul.org

Great presentation about writing Javascript like you write everything else: Well-structured and tested. JavaScript is no longer a toy language. Many of our applications can’t function without it...

...and love work just as well in JavaScript as they do any other language. Test driven development forces us to write modular, decoupled code...

makandra Operations

Sending a testmail from a server with a configured exim is easy as pie. From your usershell: tell exim that we want to send a mail to an recipient and...

The step definitions below allow you to write this in both Webrat and Capybara: When I follow "Download as PDF...

Don't simply test for the presence of the magic Paperclip attribute, it will return a paperclip Attachment object and thus always be true: - if user.photo.present? # always true

Reading user input in console applications is usually done using Kernel#gets. Stubbing that can be a bit hairy.

Spreewald has steps that let you test that e-mails have been sent, using arbitrary conditions in any combination. The attached file is for legacy purposes only...

Here's a pretty useful steps that hasn't made it into Spreewald yet. It is best used with the...

Haml HTML generated by Haml 5 HTML generated by Haml 6 %button(up-test) %button(up-test=true) %button(up-test=false) %button(up-test=nil) %button(up-test...

same %button(up-test='false') same %button(up-test='') same Extending the list of attributes considered "boolean" You can add to the list of "boolean attributes", but please do...

Copy the attached file to features/support. This gets you a convenience method: Capybara.javascript_test? Is true for Selenium, capybara-webkit, Poltergeist and a custom driver called :chrome (which we sometimes...

When testing JavaScript functionality in Selenium (E2E), you may need to access a class or function inside of a evaluate_script block in one of your steps. Capybara may only...

...are exporting your definition(s) in Webpacker, these won't be available in your tests (and neither in the dev console). The following principles/concepts also apply to Sprockets.

makandracards.com

Our rcov:all task for aggregated RSpec/Cucumber coverage was overhauled extensively. Among other things it now works for Rails 2...

makandra dev

Have you ever mistaken one Rails environment for another? The attached helper will help you to never do it again...

justinfrench.com

If you’re testing the behavior of deprecated code in your Ruby project, the warning messages littered throughout your spec output is incredibly noisy. You could silence all warnings with...

...an important warning in one of your dependencies. It’s tempting to remove the tests altogether (the code will be burned soon too, right?), but I figured out something a...

Code splitting is a feature of esbuild that can keep huge libraries out of the main bundle. How code splitting...