Estoy usando el comparador de coincidencias RSpec para verificar si un hash contiene valores esperados. Cuando una clave del hash no coincide, todos los valores dinámicos ( a_string_starting_with , etc.) se muestran como no coincidentes. Es especialmente molesto cuando intentas igualar un hash más grande. Me pregunto si hay otra forma de verificar el hash, por lo que solo los valores que realmente no coinciden aparecerán en la diferencia.
Aquí hay un ejemplo, donde a está marcado en rojo, aunque el valor es correcto.
it 'matches' do actual = { a: 'test test', b: 1, c: 2, } expect(actual).to match( a: a_string_starting_with('test'), b: 0, c: 2, ) endMe pregunto si hay otro comparador que debería usar. ¿O si hay gemas o emparejadores personalizados para esto?
El problema con esto es la gema de diferencia actual utilizada por RSpec y ya conocen el problema, aunque actualmente no existe una solución, como se puede ver en estos tickets:
Una de las soluciones propuestas por ahora en el ticket es similar a la que sugiere Mosaaleb.