Kristian Mandrup wrote:
What are the options for creating specs for file operations, executing
commands in the CLI etc.?

If I build a generator or something which runs a lot of things in the
command line, how do I check the results of these operations, fx
mocking file system updates and/or mocking the STDOUT/STDIN from the
terminal?

There must be some add-on libraries or options for this out there to
make it easy to accomplish.

In addition to aruba if you want to just use RSpec with StringIO objects you might find this example group handy:

http://github.com/bmabey/clispec/blob/master/lib/clispec/example_groups/runner.rb

The example group assumes you follow the "runner" pattern where your Runner class has a ::run method that takes args, out_stream, error_stream. Many libraries use this pattern including Cucumber and RSpec. The RSpec Book CLI app is setup this way as well if you want to see an in-depth example.

In general, for simple CLIs aruba is probably the way to go though. This example group is probably best if you want/need to use mocking more to avoid expensive operations.

HTH,
Ben
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to