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...

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...

Insomnia is a GUI tool to help you communicating with an API. There are also other tools to do this...

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...

...a MIT-based polyfill called Hyphenopoly. It applies JS-based hyphenation if a feature test shows that CSS based hyphenation is not supported for the given locale. Note that Hyphenopoly...

...can no longer search for the full word in the pasted text. Note that test browsers will also see the soft hyphens, which makes testing uncomfortable. Automatic insertion of soft...

Here is an example with the --tags option. You need to wrap them inside --cucumber-options option of parallel_cucumber...

Just install the texlive-xetex package: sudo apt-get install texlive-xetex Running integration tests without texlive-xetex will produce an error during xelatex execution: RTeX::Document::ExecutableNotFoundError

RSpec Rails can automatically mix in different behaviors to your tests based on their type tag, for example enabling you to call get and post in specs with the tag...

...will automatically choose the right type context based on the file location of the test. For instance, specs in spec/features/requests are automatically tagged with { type: :request...

...can use this command: :%s/{{\([^\}]*\)}}/%{\1}/cg Fix deprecation warnings with :overwrite_params Run tests Deploy See the commit log for a detailed list of changes. 2.3.9 to 2.3.10

...Upgrade rails gem Change your environment.rb so it says RAILS_GEM_VERSION = '2.3.10' Run tests Deploy Also see commit log. From 2.3.10 to 2.3.11 Fixes multiple security issues.

Cucumber scenarios that are tagged with @javascript so they run with Selenium are very slow. You might not want to...

...own fill_in so don't use it unless you are having problems with test suites that are unusable because of this problem. To use the patch in Cucumber, copy...

To test whether a hash includes an expected sub-hash: expect(user.attributes).to match(hash_including('name' => 'Bruce Wayne')) expect(User).to receive(:create!).with(hash_including('name' => 'Bruce Wayne...

Selenium does not speak SSL because it uses WEBrick that doesn't. When you use Selenium for Cucumber scenarios that...

We are consistently having trouble with selenium-webdriver > 2.5.0 where whenever we try to select an option from a Capybara...

...has the line gem 'rails', '~>5.2'). I also experienced that doing upgrades per group (test, development) are easier to do. Thus --groups might also be helpful. $ bundle outdated --strict --groups...

...newest 5.2.6, installed 5.2.4.6) ... ===== Group "development" ===== * binding_of_caller (newest 1.0.0, installed 0.8.0) * parallel_tests (newest 3.7.3, installed 2.32.0) * query_diet (newest 0.7.0, installed 0.6.2) * spring (newest 2.1.1, installed...

...vcr, a cassette with an automatically determined name will be generated on the first test run and replayed on subsequent runs: Here is an example for a spec using the...

If you get the above error when running tests in bulk (but not individually), it's actually the fault of Webmock. Updating Webmock to version 1.7+ fixes this...

You can use the step definition below to say this: Then the "Last name" field should have an error

...does not have any log or debugging statements like console.log(...), byebug etc. has green tests has tests for new features has been manually tested in the browser has no missing...

If you're supposed to merge yourself, you need to Run all tests again by using geordi t Get the latest master Squash your commits using git rebase...

programmingtour.blogspot.com

We had a conversation about the fact that the 'TDD is about testing vs TDD is about design" debate that keeps popping up, especially now in the Ruby community...

...your config/database.yml: default: &default adapter: postgresql # ... variables: statement_timeout: 10s # or ms, min, etc Test that it works: ActiveRecord::Base.connection.execute("show statement_timeout;").map { |row| row } => [{"statement_timeout"=>"10s"}]

...by adjusting your config/database.yml: default: &default adapter: mysql2 # ... variables: max_execution_time: 10000 # ms Test that it works: begin ActiveRecord::Base.connection.execute("SELECT 1 WHERE sleep(15)") rescue ActiveRecord::StatementTimeout => e...

Spreewald gives you steps like these: When I enter "text" into the browser dialog Also see Accept or deny JavaScript...

...No power to ['creatable_cards'] The reason for this behavior is that the Capybara test server is running in another thread, and the RSpec thread can't "see" the exception...

...not write such assertions in feature specs anyway. Instead, you could: write the same test as a request spec expect what the user sees in this situation, e.g. an error...