Cerco il modo migliore per andare a testare il seguente metodo statico (in particolare utilizzando un modello Doctrine):PHPUnit Mock oggetti e metodi statici
class Model_User extends Doctrine_Record
{
public static function create($userData)
{
$newUser = new self();
$newUser->fromArray($userData);
$newUser->save();
}
}
Idealmente, vorrei utilizzare un oggetto fittizio per assicurare che "fromArray" (con i dati utente forniti) e "save" sono stati chiamati, ma ciò non è possibile in quanto il metodo è statico.
Qualche suggerimento?
Degne di nota " Questo approccio funziona solo per lo stub e il mocking di chiamate a metodi statici in cui caller e callee si trovano nella stessa classe. Questo perché [metodi statici sono death to testability] (http://misko.hevery.com/2008/12/15/static-methods-are-death-to-estibility/). " –
La funzione 'staticExpects' è stata rimossa da PHPUnit v4. Vedi [questo thread su github] (https://github.com/sebastianbergmann/phpunit-mock-objects/issues/137) per una spiegazione del perché. –
Come sappiamo che 'staticExpects' è stato rimosso dalla versione recente di PHPUnit, qual è il modo alternativo per ottenere ciò senza' staticExpects'? –