2011-02-02 3 views
4

У меня есть простой класс FileCreator Ruby, который имеет 1 метод create, который создает пустой текстовый файл на моем рабочем столе. Используя RSpec, как бы я протестировал этот метод создания, чтобы убедиться, что файл создан, без необходимости создания файла? Использую ли я RSpec::Mocks? Может ли кто-нибудь указать мне в правильном каталоге? Благодаря! enter image description hereКак проверить создание файла с помощью RSpec?

ответ

7

После вызова file_creator.create(100) вы можете искать папку для всех File*.txt файлов и убедитесь, что счета матчей. (Убедитесь, что ваш spec удалил тестовые файлы после завершения).

Dir.glob(File.join(File.expand_path("~/Desktop"), "File*.txt")).length.should == 100 

Использование Mocks: Вы могли бы сделать что-то вроде этого, чтобы убедиться, что метод File.open фактически вызывается (чтобы проверить, что файлы на самом деле получить создан, хотя, вы можете рассмотреть на самом деле создает файлы как и первый половина моего ответа).

File.should_receive(:open).exactly(100).times 
+0

То есть, как я полагал, что я должен сделать это. Мне было интересно, есть ли способ использовать макет-объект или что-то еще, поэтому мне не нужно было бы создавать файлы в первую очередь? – agentbanks217

+0

Только что отредактировал мой ответ re: mocks. –

+0

Большое спасибо !!! – agentbanks217

2

Вы также можете попробовать использовать что-то вроде FakeFS который издевается фактической файловой системы.

0

Самый простой способ сделать это, как показано ниже:

FileCreator.count.should eq 100 
Смежные вопросы