Problème avec PHPUnit et les Fournisseurs de Données

J'ai le cas test suivant:

include_once('../Logger.php');

class LoggerTest extends PHPUnit_Framework_TestCase {

    public function providerLogger() {
        return new Logger;
    }

    /**
     * @dataProvider providerLogger
     */
    public function testAddStream($logger) {
        $this->assertTrue(false);
    }

}

Quand je le lance dans PHPUnit, j'obtiens:

PHPUnit 3.4.14 by Sebastian Bergmann.

..........

Time: 0 seconds, Memory: 5.75Mb

OK (1 tests, 0 assertions)

Test échoue, mais il ne le fait pas. J'ai essayé d'avoir:

public function providerLogger() {
    return array(new Logger);
}

Mais j'obtiens:

The data provider specified for LoggerTest::testAddStream is invalid.

J'ai essayé de le déclarer static (comme le manuel dit), mais toujours pas de différence.

Je me souviens d'avoir fonctionner dans un mode similaire avant, mais je peux me tromper. Ce qui me manque?

Merci d'avance pour votre aide.

PHPUnit 3.4.14 (prises de POIRE) sur PHP 5.3.3

  • 1 des essais, 0 assertions. Votre test n'a même pas été appelé. Je parie que le problème n'est pas dans le fournisseur de données.
  • Le fait est, si je supprime le @dataProvider chose, j'obtiens une erreur parce que testAddStream() nécessite un paramètre. Si je supprime le paramètre complètement, test échoue comme il se doit.
  • Je rencontre un problème à l'aide de PHPUnit dans Zend Studio où si je m'inscrire à un espace de noms avec Zend_Autoloader, à l'aide de @dataProvider provoque la (tentative de) chargez le nom du test en tant que classe. Je vais jeter chances que ces 2 problèmes sont liés.
  • Poster votre code sous forme de question et nous verrons bien! 😉
InformationsquelleAutor netcoder | 2010-11-24