2016-09-28 3 views

Antwort

1

Sieht aus wie es nicht möglich, die Standardmethode verwenden, so dass Sie einen Rückruf zur Angabe der Rückgabewert verwenden können, und überprüfen Sie die Argumente gibt (etwas schwierig, aber scheint zu funktionieren):

$mock = $thi->getMockBuilder('MyClass')->getMock(); 
$mock->expects($this->any()) 
    ->method('myMethod') 
    ->willReturnCallback(function() { 
     $args = func_get_args(); 
     $disallowedArgs = [1, 'abc']; 
     $this->assertNotEquals($disallowedArgs, $args); 
    }) 
; 
0

Übergeben Sie das Argument, das nicht an die Methode übergeben werden soll, und bestätigen Sie expect exception, wenn Ihre Methode eine wirft (was wahrscheinlich sein sollte).

https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.exceptions.examples.ExceptionTest.php

+0

Sie gehen davon aus, wie die echte Methode funktionieren sollte. Die Frage ist, diese Methode zu verspotten. Vielleicht sind die Argumente gut für die reale Methode, aber nicht gültig im Testkontext. – gontrollez

Verwandte Themen