...won't notice for a while (ask me how I know) but occasionally encounter tests which are "randomly failing". Example When users change their name and visit a page they...
RubyMine has a HTTP Client that can be useful to test web APIs. Just create a .http scratch file an write your request in it. The request can then be...
...configured your Searchkick settings) add: SEARCHKICK_CLIENT_TYPE = case Rails.env when 'production', 'staging', 'development', 'test' :elasticsearch else :opensearch end Searchkick.client_type = ENV.fetch('SEARCHKICK_CLIENT_TYPE', SEARCHKICK_CLIENT_TYPE).to_sym...
...was moved from the top to the bottom of a file, or a long test file that was split in many. Fortunately, Git offers a special highlighting mode that directs...
...when using the native player or a well known Browser. Browser Playback Support To test the Browser support, I created a tag with a WebM/VP8 and a MP4/H.264 . The Browser...
...WebM, VP8 + AAC ✓ ✓ ⚠ ⚠ ✓ ⚠ ✓ BrowserStack Matrix Every available combination listed in this table was manually tested on BrowserStack. The chosen video codec is annotated in every cell, audio playback was verified...
...by CSS, the following will work with Selenium, but not when using the Rack::Test driver. The Selenium driver correctly only considers text that is actually visible to a user...
...Then I should not see "foobear" This is because the Rack::Test driver does not know if an element is visible, and only looks at the DOM. Spreewald offers steps...
...search results for example to the /app/ directory can be helpful to exclude all test files. The probably easiest way to start this kind of search is from the project...
Geordi can also be configured to automatically update chromedriver each time you run tests. For that, edit the global configuration file ~/.config/geordi/global.yml and add the line auto_update_chromedriver...
...vcr, a cassette with an automatically determined name will be generated on the first test run and replayed on subsequent runs: Spec: # spec/models/ / _spec.rb describe ModelName::ExampleApi do describe ' ' do...
...Model Serializer (AMS) to serializer our Active Record models to JSON. JSON Schema to test the responses of our server. SwaggerUI to document the API. It worked The concept worked...
...Rails application, that has no UI components (only the documentation) and therefore no integration tests, the tests are really fast. With ~25 endpoints the tests are finished within 22 seconds...
Your development machine is usually on a very good network connection. To test how your application behaves on a slow network (e.g. mobile), you can simulate limited bandwidth. Chrome
...Mysql::Error: Column 'created_at' in order clause is ambiguous Unless you have a test covering this particular case, you won't notice this until after you deployed.
...by running man wkhtmltopdf. However, you should always have quiet: true to keep your test output and logs clean. How to express page breaks, headers, footers, etc. There are concepts...
...configuration.rb With this approach you have a stronger decoupling in your application: Your unit tests might use Webmock or VCR for the lib/github_client part, but your application only talks to...
...assist users with disabilities. It is also very practical to label things for integration tests. With the auto-mapper below you can write this: Then I should see "Bruce" within...
...start playing video or audio. E.g. if you attempt to call video.play() in a test, the call will reject with a message like this: NotAllowedError: play() failed because the user...
...with the document first. https://goo.gl/xX8pDD Workaround To pretend document interaction in a test you can create an element, click on it, and remove the element again. This unblocks...
...Just increase the last index when proceeding to the next example. Handy when the test file frequently changes, e.g. because before blocks are modified. The line number approach would easily...
@writer.puts "Started: #{i}" sleep 0.01 @writer.puts "Finished: #{i}" end @writer.close end end @writer.close # test whether we always get alternating "Started" / "Finished" lines lines = [] @reader.each_line { |line| lines << line } lines.should...
...wipes the database just when it is called. The above configurations make sure the test database(s) are emptied up-front. The :transaction strategy does not work with Selenium.
...see Understanding database cleaning strategies in tests...
...do not have to call force_extension(...) in your version block. If you have tests for file processors (e.g. for ClamAV virus scans via process: :virus_scan) and you have...
See the Spreewald README for more cool features. You can use it to test links that were opened with a link_to(..., :target => '_blank') link or other ways that...
...create new tabs or windows. Important This only works with Selenium enabled tests...
...including and hash_including matches with red even they should be green if a test fails. You need to find out manually where the result differs from the expectation.
# Usage: linearcommits FOO-123456 # Alternative usage: linearcommits https://linear.app/some-workspace/issue/FOO-123456 function linearcommits { if test "$1" then local LINEAR_ID=$(echo "$1" | grep "[^/]*$" -o) # Extract linear ID from URLs
Then I should see a table with exactly the following rows: ... Testing tables with colspan or rowspan Cucumber tables are required to have the same number of...
...cells in every row. This is unfortunate when testing a table that uses colspan or rowspan attributes. The attached step definition offers a workaround for this: Wrap the entire table...