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 UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
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)