Как вернуть false в RSpec как ожидаемый результат при проверке существования каталога? - PullRequest
0 голосов
/ 19 апреля 2019

Я пишу тест RSpec, чтобы проверить, является ли данный путь каталогом.В одном случае это не так, и я ожидаю ложного, но я не знаю, как поднять это.

Итак, мой тест выглядит так:

context 'when a logfile is given' do
    it 'does not contain a folder first' do
      logfile = '/tmp/qwertyasd/random/path/rspec.log'
      expect(Pathname(File.dirname(logfile))).to be_directory
      # I want this expect to return false. I cannot use !be_directory
      # I know I should not use be_directory, I was thinking about something like !be_directory but this raise an error.
    end

     it 'create a folder for it' do
       logfile = '/tmp/qwertyasd/random/path/rspec.log'
       Pathname.new(logfile).parent.descend { |path| FileUtils.mkdir path if path.parent.writable? && !path.exist? }
       expect(Pathname(File.dirname(logfile))).to be_directory
       `rm -rf /tmp/qwertyasd`
     end
end

У меня естьпопытался использовать! be_directory, но это дает мне ошибку.Любые советы?

Ответы [ 2 ]

2 голосов
/ 19 апреля 2019

Используйте to_not. Попробуйте

expect(Pathname(File.dirname(logfile))).to_not be_directory

https://relishapp.com/rspec/rspec-expectations/docs/built-in-matchers

1 голос
/ 19 апреля 2019

Похоже, вам нужно что-то вроде:

expect(Pathname(File.dirname(logfile))).not_to be_directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...