2014-12-04 13 views
22

Lütfen aşağıdaki test yöntemlerinden birini RSpec kullanarak nasıl devre dışı bırakacağınızı öğrenin. Testleri çalıştırmak için Selenuim WebDriver + RSpec kombinasyonlarını kullanıyorum.RSpec kullanarak bir test yöntemini nasıl yok saymayı veya atlamayı nasıl başarabilirsiniz?

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 

cevap

35

Sen bekleme uygulanması için bekleyen bloğunda iddia pending() kullanabilir veya xit için it değiştirebilir veya sarabilirsiniz:

İşte
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 
+0

Teşekkür ederim .. İşe yarıyor! –

6

yukarıdaki test yöntemi görmezden (atla) alternatif bir çözümdür (diyelim ki, Test01) örnek komut dosyasından.

describe 'Automation System' do 

    # some code here 

    it 'Test01' do 
    skip "is skipped" do 
    ###CODE### 
    end 
    end 

    it 'Test02' do 
    ###CODE###   
    end  
end 
+0

Bunu beğendim. Semantik olarak, "atlama" "xit" ve "beklemede" farklı şeylerdir – MegaTux

1

Belirli bir kod bloğunu sınarken çalışırken çalışmasının iki yolu vardır.

Örnek: Yerine xit'in kullanılması. Aşağıdaki kod bloğunu aşağıdaki olarak değiştirin.

İkinci yol: Bloğun içinde bekleyen çağrı ile. Örnek: Bunun alternatifi vardır

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

. Temel olarak pending veya skipped olarak işaretler ve aralarında ince bir fark vardır. Dokümanlar

Dokümanlardan biri, atlandığı, çalıştırılmadığı veya yürütülmesinin beklendiği şekilde işaretlenebilir, ancak başarısızlık, tüm paketin arızalanmasına neden olmaz. Burada

refere docs:

7

testleri atlamak için başka bir yol:

# 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 

kaynak: rspec 3.4 documentation

2

Beklemede ve atlamanız güzel ancak bunu her zaman görmezden gelmem gereken büyük açıklama/bağlam blokları için kullandım.

describe Foo do 
    describe '#bar' do 
    it 'should do something' do 
     ... 
    end 

    it 'should do something else' do 
     ... 
    end 
    end 
end if false 
İlgili konular