2011-02-02 12 views
4

私は単純なFileCreator Rubyクラスの1つのメソッドcreate私のデスクトップ上に空のtxtファイルを作成する方法があります。 RSpecを使用して、ファイルを作成せずにファイルが作成されたことを確認するために、この作成メソッドをテストするにはどうすればよいでしょうか? RSpec::Mocksを使用しますか?誰かが正しいディレクトリに私を向けることができますか?ありがとう! RSpecでファイル作成をテストする方法は?

答えて

7

enter image description herefile_creator.create(100)を呼び出した後、あなたはすべてのFile*.txtファイルのフォルダを検索し、カウント一致を確認してください可能性があります。 (完了後にあなたの仕様にテストファイルを削除させてください)。モックを使用して

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

:あなたはFile.open方法が実際に(ただし、ファイルが実際に作成されますことをテストするために呼び出されていることを確認するために、このような何かを行うことができ、あなたは、実際には最初のようなファイルを作成することを検討することをお勧めします私の答えの半分)。

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

私はそれをしなければならないと考えました方法であること。私が疑問に思っていたのは、モックオブジェクトや何かを使う方法があるので、最初にファイルを作成する必要がないということでした。 – agentbanks217

+0

ちょうど私の答えを編集しました:モック。 –

+0

ありがとうございました!!! – agentbanks217

2

FakeFSのようなものを実際のファイルシステムに適用してみることもできます。

0

それを行うための最も簡単な方法は以下の通りです:

FileCreator.count.should eq 100 
関連する問題