tests run rails how example describe ruby syntax rspec rspec2

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