2016-04-08 14 views
1

Farklı web sitelerini test etmek için aynı rpsec testcase'yi kullanmak istiyorum, örneğin, tüm siteleri bir seferde test edebilirim ve bunlardan birini test edebilirim Bir seferde. Bana biraz tavsiye verir misin? bunu basit bir şekilde nasıl yapabilirim.Farklı siteyi test etmek için aynı rpsec test vakası nasıl kullanılır

Rspec-rils'i değil, rspec'i kurun. Bu Farklı özellikleri, örneğin arasındaki örnekler kümesi yeniden shared_examples_for kullanabilirsiniz kodum

require 'spec_helper' 
require 'net/http' 
require 'json' 
require 'uri' 


describe 'mywebsite1' do 
    uri = URI.parse('http://mywebsite1/') 
    initheader = {'Content-Type' =>'application/json'} 
    req = Net::HTTP::Post.new(uri, initheader) 

describe 'common_test' do 
    payload = JSON.parse(open("file.json").read) 
    req.body = payload.to_json 
    context 'case1' do 
    res = Net::HTTP.start(uri.host, uri.port) do |http| 
    http.request(req) 
    end 
    result = JSON.parse(res.body) 
    it "should response with the code 201" do 
    expect("#{res.code}").to eq '201' 
    end 
    specify "status is Ready" do 
    expect(result['item']['status']).to eq 'Ready' 
    end 
    specify "type is All" do 
    expect(result['item']['type']).to eq 'All' 
    end 
end 
    context 'case2' do 
    ... 
    end 
    end 
end 

cevap

3

olduğunu

shared_examples_for 'a website' do 
    context 'case1' do 
    let(:req) { 
     Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'}) 
    } 

    let(:res) { 
     Net::HTTP.start(uri.host, uri.port) do |http| 
     http.request(req) 
     end 
    } 

    it 'should respond with 201' do 
     expect(res.code.to_i).to eq(201) 
    end 
    end 
end 

Sonra ör sen it_should_behave_like kullanmak paylaşılan örnekler kullanın ve paylaşılan örnekler adını geçirmek istediğinizde

describe 'my website' do 
    it_should_behave_like 'a website' do 
    let(:uri) { URI.parse('http://mywebsite') } 
    end 
end 

describe 'a different website' do 
    it_should_behave_like 'a website' do 
    let(:uri) { URI.parse('http://anotherwebsite') } 
    end 
end 

Sen yapmak istediğim oldukça ne olduğunu https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/example-groups/shared-example-group

+0

, daha ayrıntılı bilgi görebilirsiniz, çok vvvvvvvvvery ederiz –

İlgili konular