Read more

Cucumber's table diffing does not play nice with Spreewald's `patiently do`

Tobias Kraze
April 15, 2020Software engineer at makandra GmbH

Turns out, Cucumber::MultilineArgument::DataTable#diff! caches some stuff. Code of the following form will not work as intended:

Then('some table should look like') do |expected_table|
  patiently do
    actual_table = calculate_actual_table
    expected_table.diff!(actual_table) # not actually patient, will keep failing if it failed the first time
  end
end
Illustration web development

Do you need DevOps-experts?

Your development team has a full backlog? No time for infrastructure architecture? Our DevOps team is ready to support you!

  • We build reliable cloud solutions with Infrastructure as code
  • We are experts in security, Linux and databases
  • We support your dev team to perform
Read more Show archive.org snapshot

Instead, simply use

expected_table.dup.diff!(actual_table)
Posted by Tobias Kraze to makandra dev (2020-04-15 16:59)