In Ruby, you can only write environment variables that subprocesses will see. For tests with a Rails application (i.e., that call rails or rake or other binstubbed commands), this...

...method may help you: # Use this method to wrap any system calls to the test application def prepare_environment(&block) Bundler.with_clean_env do # Spring leads to all kinds of...

yarn add coffeescript coffee-loader Define a CoffeeScript loader (e.g. in config/webpack/loaders/coffee.js) module.exports = { test: /\.coffee$/, use: [{ loader: 'coffee-loader' }] } Add the loader to the Webpacker environment (e.g. in config/webpack/environment.js...

...SOAP API, you may want to use Savon::SpecHelper to mock requests in your tests as described in their documentation. When sending a message body, the savon mock object requires...

...note: You could use VCR to record your SOAP talk. In my case my tests had to talk to the same service the staging servers talk to, so any recorded...

github.com

...a nice way of processing parameter options, some utility classes and Cucumber steps for testing your CLI app...

# visit page.driver.last_request.env['HTTP_REFERER'] # old visit page.driver.request.env['HTTP_REFERER'] # new # or for javascript tests: page.execute_script('window.history.back()') end undefined method locate for #Capybara::Session (NoMethodError) Use page.find instead of...

...now wrapped by a html document skeleton. Use page.text instead. (e.g. when you are testing correct JSON which is in fact not wrapped by a html sceleton) An element can...

...How to make a terminal window title reflect the current path Too many parallel test processes may cause flaky tests Load rbenv on session create Load nvm on session create...

...user hovers over the button, or when the article is scrolled into view). 6. Test it! There is so much that can go wrong with the buttons or how the...

...share dialog popups interact with your layout. Always test with each social network. Consider using a fake profile for this so you don't annoy your real life friends...

In order to chain greps on log files that are opened via tail -f test.log you have to use the --line-buffered command line option for grep. Imagine you have...

...the following content in your log file. # content for log/test.log test foo bar test foo bar baz bla Now if you would like to grep for lines that contain foo...

...consolidated commit. Having as little commits as possible to restore later is key. Run tests and fix them, if necessary. Maybe tests were added that expect the removed functionality as...

Sometimes you need a file of some size (possibly for testing purposes). On Linux, you can use dd to create one. Let's say you want a 23 MB file...

...called test.file. You would then run this: dd if=/dev/zero of=test.file bs=1048576 count=23 The block size (bs) is set to 1 MB (1024^2 bytes) here, writing...

httpie.org

...and has very nice defaults and coloured output which makes it good for local testing. Usage examples with curl equivalent: # curl post curl --data "foo=23&bar=42" https://example.org...

makandra dev
github.com

...through of unknown options to Cucumber Add --rerun=N option to rerun failed Cucumber tests up to N times. Reboots the test environment between runs, thus will pick up fixes...

medium.com

Advantages over a classic Rails monolith By (automatically) only requiring expected/allowed dependencies in tests, components cannot accidentally use (i.e. depend on) code they're not allowed to

...of the clear separation and dependencies. No need to know the whole application. Faster test runs, because only dependent components need to run. A growing team can still keep up...

...as an npm package. // vendor/asset-libs/bought-font/package.json { "name": "bought-font", "version": "1.0.0", "description": "", "main": "index.scss", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Salesman of trust", "license": "LICENSE", "private": true...

github.com

...official" rails2 branch [2] which contains commits that were added after 0.8.6 was released. Tests are fully passing on our fork for Ruby 1.8.7, REE, and Ruby 1.9.3.

...of Module.const_defined? was missing. [2] Changes for replica sets were reverted (since their tests were not passing) and some tests were fixed...

...that has two disadvantages: You're doing something that never happens in reality. Your tests shouldn't do things your code never does. You're fiddling with internal state. When...

...writing tests, stay on your chosen abstraction level. Solution 1 record.unmemoize_all Solution 2 Perform a full reload by re-finding your record: it 'updates on changes' do subject.seat_counts...

...provides a script to migrate your Ruby project automatically. Make sure your project has tests and you have a backup of your files (or pushed your commits to Git)

...is not perfect). Check the diff to see what the script has done. Run tests to see if everything still works...

Our rspec_candy gem now gives you three matchers: be_same_number_as Tests if the given number is the "same" as the receiving number, regardless of whether you're...

...purposes". Internally the matcher compares normalized results of #to_s. be_same_second_as Tests if the given Time or DateTime is the same as the receiving Time or DateTime...

When testing Ruby code that prints something to the terminal, you can test that output. Since RSpec 3.0 there is a very convenient way to do that. Anything that writes...

...print) can be captured like this: expect { something }.to output("hello\n").to_stdout Testing stderr works in a similar fashion: expect { something }.to output("something went wrogn\n").to...

...a button on a Selenium-controlled browser, the call will return control to your test before the next page is loaded. This can lead to concurrency issues when a Cucumber...

github.com

Microsoft provides virtual machine disk images to facilitate website testing in multiple versions of IE, regardless of the host operating system. Unfortunately, setting these virtual machines up without Microsoft's...

...on a Rails project a bundle install will get you back the gems. Run tests Now run your test suite to see if the migration was successful. Troubleshooting: Use an...

...not to include 3 Applications Tip This can be used to test for exclusion of multiple values all at once...

rspec.info

You can define methods in any example group using Ruby's def keyword or define_method method: describe "example" do...