ruby - run - rspec rails 5
Usar `subject` implĂcito con` expect` en RSpec-2.11 (3)
Con Rspec 3.0 puede usar is_expected
como se describe aquí .
describe Array do
describe "when first created" do
# Rather than:
# it "should be empty" do
# subject.should be_empty
# end
it { should be_empty }
# or
it { is_expected.to be_empty }
end
end
Con la nueva sintaxis esperada en rspec-2.11, ¿cómo es posible usar el subject
implícito? ¿Hay alguna manera mejor que hacer referencia explícita al subject
, como a continuación?
describe User do
it ''is valid'' do
expect(subject).to be_valid # <<< can `subject` be implicit?
end
end
Si configura RSpec para deshabilitar la sintaxis de should
, aún puede usar la sintaxis de un liner anterior, ya que eso no implica que should
agregarse a cada objeto:
describe User do
it { should be_valid }
end
Discutimos brevemente una sintaxis alternativa de una línea, pero decidimos no hacerlo porque no era necesario y sentimos que podría agregar confusión. Sin embargo, puede agregar esto fácilmente si prefiere cómo se lee:
RSpec.configure do |c|
c.alias_example_to :expect_it
end
RSpec::Core::MemoizedHelpers.module_eval do
alias to should
alias to_not should_not
end
Con esto en su lugar, podría escribir esto como:
describe User do
expect_it { to be_valid }
end
Uno podría usar la nueva sintaxis del tema nombrado, aunque no está implícito.
describe User do
subject(:author) { User.new }
it ''is valid'' do
expect(author).to be_valid
end
end