tutorial tests test spec run rails how español ruby rspec selenium-webdriver rspec2

ruby - tests - ¿Cómo ignorar u omitir un método de prueba usando RSpec?



run spec rails (6)

por favor guía cómo desactivar uno de los métodos de prueba a continuación utilizando RSpec. Estoy usando combinaciones de Selenuim WebDriver + RSpec para ejecutar pruebas.

require ''rspec'' require ''selenium-webdriver'' describe ''Automation System'' do before(:each) do ### end after(:each) do @driver.quit end it ''Test01'' do #positive test case end it ''Test02'' do #negative test case end end


Aquí hay una solución alternativa para ignorar (omitir) el método de prueba anterior (por ejemplo, Test01 ) del script de muestra.

describe ''Automation System'' do # some code here it ''Test01'' do skip "is skipped" do ###CODE### end end it ''Test02'' do ###CODE### end end


Hay dos formas de evitar que un bloque específico de código se ejecute durante la prueba.

Ejemplo: Usar xit en lugar de eso.

it "redirects to the index page on success" do visit "/events" end

Cambie el bloque de código anterior a continuación.

xit "redirects to the index page on success" do #Adding x before it will skip this test. visit "/event" end

Segunda forma: llamando al pendiente dentro del bloque. Ejemplo:

it "should redirects to the index page on success" do pending #this will be skipped visit "/events" end


Hay una serie de alternativas para esto. Marcado principalmente como pending u skipped y existe una diferencia sutil entre ellos. De los documentos

Un ejemplo puede marcarse como omitido, en el que no se ejecuta o pendiente en el que se ejecuta, pero el error no provocará un error en todo el conjunto.

Consulte los documentos aquí:


Otra forma de saltear pruebas:

# feature test scenario ''having js driver enabled'', skip: true do expect(page).to have_content ''a very slow test'' end # controller spec it ''renders a view very slow'', skip: true do expect(response).to be_very_slow end

fuente: documentación de rspec 3.4


Pending y skip son agradables, pero siempre he usado esto para bloques de descripción / contexto más grandes que necesitaba ignorar / omitir.

describe Foo do describe ''#bar'' do it ''should do something'' do ... end it ''should do something else'' do ... end end end if false


Puede usar pending() o cambiarlo a xit o wrap assert en el bloque pendiente para la implementación de espera:

describe ''Automation System'' do # some code here it ''Test01'' do pending("is implemented but waiting") end it ''Test02'' do # or without message pending end pending do "string".reverse.should == "gnirts" end xit ''Test03'' do true.should be(true) end end