DEV Community

Augusts Bautra
Augusts Bautra

Posted on

2

TIL: an_array_starting_with matcher

Today I was working with generating excel files for export and had some trouble with tests - the generator (or maybe parser?) kept adding a random number of empty cells after the relevant data, making assertions fail.

Luckily, we can define our own matcher to ignore these irrelevant details. Also makes the spec read better. :)

# spec/support/matchers/array_starting_with_matcher.rb
RSpec::Matchers.define :an_array_starting_with do |expected|
  match do |actual|
    actual.is_a?(Array) && actual.first == expected
  end
end

# then in specs
expect(
  [
    :a,
    [:b, nil, nil]
  ]
).to match(
  [
    :a,
    an_array_starting_with(:b)
  ]
)
Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more