AssertDirsEqual is a test framework-agnostic expectation/assertion for directories equality by tree and content comparison.
Production ready.
Sometimes it is easier to commit expected directory structure and compare it with a directory created by a method under test.
If you prefer DSL-like expectations, see minitest-filesystem.
Add this line to your application's Gemfile and run bundle
:
gem 'assert_dirs_equal', require: false
class MyWriter
def self.perform
File.write("/tmp/my_writer/result.txt", "Hello world!")
end
end
Create a file "result.txt" with "Hello world!" in "test/fixtures/case01".
require 'minitest/assert_dirs_equal'
class MyWriterTest < Minitest::Test
def test_perform
MyWriter.perform
assert_dirs_equal "test/fixtures/case01", "/tmp/my_writer"
end
end
TODO
Due that Rubinius String#strip doesn't fail on binary data (undocumented behaviour), the library will
try to actually diff binary files. Depending on your test framework's diffing tool, it may or may not
be a problem. For example, Minitest is not affected, since it uses shell diff
under the hood.
Extracted from Torba library since it looks more like a standalone component.