with rails matchers examples effective bot rspec

rails - RSpec: ¿Hay un no para `y cambio`, por ejemplo,` y_no para cambiar`?



rspec ruby (2)

No, no hay un operador de negación general de and_not y no, como se explica en https://github.com/rspec/rspec-expectations/issues/493

Sin embargo, existe un mecanismo para definir una versión negada de un emparejador existente, como se describe en http://www.rubydoc.info/github/rspec/rspec-expectations/RSpec/Matchers.define_negated_matcher , que puede usar con and .

El conjunto completo de comparadores compuestos se documenta en https://www.relishapp.com/rspec/rspec-expectations/v/3-4/docs/compound-expectations

Encuentro que el método .and muy útiles para encadenar muchas expectativas.

expect { click_button ''Update Boilerplate'' @boilerplate_original.reload } .to change { @boilerplate_original.title }.to(''A new boilerplate'') .and change { @boilerplate_original.intro }.to(''Some nice introduction'')

¿Hay algo que me permita comprobar que no haya cambios ?

.and_not change { @boilerplate_original.intro }

¿Algo como eso? No pude encontrar nada, y es difícil buscar en Google algo como "y no".


Si está intentando afirmar que alguna operación no debería cambiar un conteo, podría hacer

expect { something }.to change { Foo.count }.by(1).and change { Bar.count }.by(0)