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)