PHPUnit “Raillé méthode n'existe pas.” lors de l'utilisation de $maquette>attend($this->at(...))

J'ai couru dans un étrange problème avec PHPUnit les objets fantaisie. J'ai une méthode qui devrait être appelé deux fois, donc je suis en utilisant le "à" matcher. Cela fonctionne pour la première fois, la méthode est appelée, mais pour une raison quelconque, la deuxième fois il l'appelle, je reçois "Raillé méthode n'existe pas.". J'ai utilisé le "à" matcher avant et n'ai jamais couru dans cette.

Mon code ressemble à quelque chose comme:

class MyTest extends PHPUnit_Framework_TestCase
{
    ...

    public function testThis()
    {
        $mock = $this->getMock('MyClass', array('exists', 'another_method', '...'));
        $mock->expects($this->at(0))
             ->method('exists')
             ->with($this->equalTo('foo'))
             ->will($this->returnValue(true));

        $mock->expects($this->at(1))
             ->method('exists')
             ->with($this->equalTo('bar'))
             ->will($this->returnValue(false));
    }

    ...
}

Quand je lance le test, j'obtiens:

Expectation failed for method name is equal to <string:exists> when invoked at sequence index 1.
Mocked method does not exist.

Si je supprime le deuxième matcher, je n'ai pas l'erreur.

Quelqu'un a rencontré ce avant?

Merci!

InformationsquelleAutor rr. | 2010-07-29