У меня есть проект Ruby с исполняемым файлом UNIX с именем parse
, расположенным во вложенной папке bin
в каталоге root моего проекта. На данный момент это просто:
#!/usr/bin/env ruby
# frozen_string_literal: true
puts 'hello world'
Файл может быть выполнен в командной строке, когда эта команда запускается из каталога проекта root: bin/parse
Работает нормально , но я также хочу написать для него проходящий тест Rspe c. У меня есть файл spe c:
RSpec.describe "end-to-end application behaviour" do
subject { system('bin/parse') }
it 'prints the expected messsage to stdout' do
expect { subject }.to output(
'hello world'
).to_stdout
end
end
Когда я запускаю его, я получаю ошибку теста:
ожидаемый блок для вывода «hello world» на стандартный вывод, но вывод ничего
Это расположение моего файла spe c относительно моего проекта root: spec/integration/parse_spec.rb
Я попытался разместить операторы require
и require_relative
в этот файл spe c с путями к исполняемому файлу parse
, на случай, если это поможет, но я просто продолжал получать:
LoadError: не могу загрузить такой файл
Кто-нибудь знает, как я могу написать тест в этом файле, который пройдет и подтвердит, что поведение parse
исполняемого файла работает?