5
Ich verwende Test::MockModule
, um Perl-Modul zu testen. Einer der Anrufe muss den Status $?
überprüfen, um Fehlercode und Programmprüfungen dafür zu erhalten.
Wie kann ich verspotten das Ergebnis $?
im Test befindlichen Code wie unten.
my $result = CCUtil::cleartool($cmd);
if ($? != 0) {
confess "Stream $stream not found($result) ";
}
Die API gibt String zurück und setzt $? zum Überprüfen des Status.
normale Methodenaufrufe und deren Rückgabewerte geändert werden mit so etwas wie unten
my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub {return 'stream not found'});
Der Methodenaufruf wird nun verspottet. Nicht der Wert von - $?