[rspec-users] Mocking and specing command line (cli) execution, file operations etc. ?

Ben Mabey ben at benmabey.com
Mon Jun 7 20:55:06 EDT 2010


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


More information about the rspec-users mailing list