#!/usr/bin/env perl use warnings; use strict; use FindBin; use File::Spec::Functions qw/catfile updir/; use Capture::Tiny 'capture'; use Config; use Test::More tests => 2; # Unit Under Test my $UUT = catfile($FindBin::Bin, updir, 'bin', 'foo.pl'); subtest '--version' => sub { plan tests => 3; my ($out,$err,$exit) = capture { system $Config{perlpath}, $UUT, '--version' }; is $exit, 0, 'perl ok'; is $out, "my_script version 1.00\n\n", 'stdout message correct'; is $err, '', 'no stderr'; }; subtest '--help' => sub { plan tests => 3; my ($out,$err,$exit) = capture { system $Config{perlpath}, $UUT, '--help' }; is $exit, 0, 'perl ok'; like $out, qr/\bUsage:\s+foo\.pl FOO BAR\b/si, 'stdout message correct'; is $err, '', 'no stderr'; };