2014-06-24 13 views
5

Sto usando Test::MockModule per testare il modulo perl. Una delle chiamate richiede lo stato di controllo di $? per ottenere il codice di errore e i controlli del programma.

Come posso prendere in giro il risultato di $?

Codice in prova è come qui di seguito.

my $result = CCUtil::cleartool($cmd); 

if ($? != 0) { 
    confess "Stream $stream not found($result) "; 
} 

L'API restituisce stringa e imposta $? per verificare lo stato.

chiamate a metodi normali ed i loro valori di ritorno vengono modificate usando qualcosa di simile sotto

my $module = Test::MockModule->new('CCUtil'); 
$mockModule->mock(cleartool => sub {return 'stream not found'}); 

La chiamata al metodo viene ora preso in giro. Non il valore di - $?

risposta

4
my $module = Test::MockModule->new('CCUtil'); 
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' }); 
Problemi correlati