2015-07-15 7 views
1

У меня есть тест RSpec так:Как написать RSpec-тест для сравнения строки с ожидаемой подстрокой?

context 'test #EnvironmentFile= method' do 

    it 'compares the command generated with the expected command' do 

    knife = EnvironmentFromFile.new(@knife_cfg_file) 

    knife.environment_file=(@environment_file) 

    expect(knife.chef_cmd_to_s).to eql("C:/blah/blah/bin/knife environment from file MySampleEnvironment.json --config 'knife.rb'") 

    end 
end 

Теперь, чтобы избежать платформ зависимости, ожидаемое сообщение в EQL() должно быть подстроки без первоначальных C:/ли/л/bin/часть.

Мой ожидается сообщение должно быть «нож среды от файла MySampleEnvironment.json --config„knife.rb“»

Который должен совпадать с фактическим сообщением возвращается из метода knife.chef_cmd_to_s: «C:/бла/blah/bin/knife из файла MySampleEnvironment.json --config 'knife.rb' "

Как это сделать? Какой сокет Rspec используется для этого?

ответ

3

Здесь вы должны использовать штекер include (documentation).

context 'test #EnvironmentFile= method' do 

    it 'compares the command generated with the expected command' do 

    knife = EnvironmentFromFile.new(@knife_cfg_file) 

    knife.environment_file=(@environment_file) 

    expect(knife.chef_cmd_to_s).to include("knife environment from file MySampleEnvironment.json --config 'knife.rb'") 

    end 
end 
+0

Это именно то, что я искал. Благодарю. Невозможно повысить свой ответ из-за низкой репутации. – kaushikv