emenegro
emenegro

Reputation: 6971

Test CLI with parameters

I assume this is very newbie stuff but I'm learning Ruby by doing, and I'm developing a small CLI tool that receives a couple of parameters in order to do its stuff properly. This is my current workflow:

enter image description here

I want to test (using Minitest) all the possible flows:

Now, if I run tests the only thing I see is the help output as there is no parameter being passed.

So, a couple of questions:

Thanks!

Upvotes: 0

Views: 118

Answers (1)

phoet
phoet

Reputation: 18845

nice diagram!

you can either use helpers like aruba https://github.com/cucumber/aruba

or dig into ruby internals in order to bend it to your will!

# test.rb
pseudoIO = StringIO.new
$stdout = pseudoIO

puts "hi #{ARGV.join(', ')}"

ARGV.replace ["file1"]

puts "now its #{ARGV.join(', ')}"

abort "captured: #{pseudoIO.string}"

output should be

ruby text.rb "whutup"
# => captured: hi whutup
# => now its file1

Upvotes: 1

Related Questions