Skip to content

jch/fstest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSTest

Blatantly stolen file and directory assertion methods from Rails::Generators::TestCase. Include the FSTest module for testing file existence, and file contents.

Installation

gem install fstest

Example

class MyClassTest < MiniTest::Unit::TestCase
  include FSTest

  def test_writes_file
    assert_no_file '/tmp/foo'
    File.open('/tmp/foo', 'w') {|fh| fh.puts "nom nom"}
    assert_file '/tmp/foo', /^nom nom$/
  end
end

Overview

I couldn't find any good examples of tests for Rails generators, so I looked at the Rails tests. Rails uses a custom test class called Rails::Generators::TestCase. This class has methods for testing the output of generators. I thought the methods would be useful outside of a Rails context, so I wrapped it up in the FSTest gem. Enjoy!

Extras

If you want to work with relative paths instead of absolute paths, you can set the 'base_directory' in a setup block.

class MyClassTest < MiniTest::Unit::TestCase
  include FSTest

  def setup
    # all assert_file assertions will be relative to your homedir
    self.base_directory = File.expand_path("~")
  end

  def test_dot_emacs
    # this will look for ~/.emacs
    assert_file '.emacs'
  end
end

I've also found it useful to use FakeFS alongside this.

About

File existence, and file contents test assertion methods

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages