SORU
10 Kasım 2008, PAZARTESİ


Nasıl differernt değerleri bir parametreye dönmek için PHPUnit MockObjects alabilir miyim?

Verir "" ne olursa olsun, kendi bağımsız değişkenler: . dönüş değeri PHPUnit sahte bir nesne var

// From inside a test...
$mock = $this->getMock('myObject', 'methodToMock');
$mock->expects($this->any))
     ->method('methodToMock')
     ->will($this->returnValue('return value'));

Yapmak istediğim şey, bağımsız alay yönteme geçirildi dayalı farklı bir değer döndürür. Gibi bir şey denedim:

$mock = $this->getMock('myObject', 'methodToMock');
// methodToMock('one')
$mock->expects($this->any))
     ->method('methodToMock')
     ->with($this->equalTo('one'))
     ->will($this->returnValue('method called with argument "one"'));
// methodToMock('two')
$mock->expects($this->any))
     ->method('methodToMock')
     ->with($this->equalTo('two'))
     ->will($this->returnValue('method called with argument "two"'));

Ama bu PHPUnit eğer alay "" ben varsayalım methodToMock tanımı('iki') ilk tanımı üzerine yazar. iki değişken adı değil diye şikayet etmek neden olur

Benim sorum ise şu: farklı bir değer argümanlar dayalı dönmek için PHPUnit sahte bir nesne almak için herhangi bir yolu var mı? Ve eğer öyleyse, nasıl?

Şimdiden teşekkürler!

CEVAP
15 Kasım 2008, CUMARTESİ


Bir geri arama kullanmak. örneğin (düz PHPUnit belgelerine):

<?php
class StubTest extends PHPUnit_Framework_TestCase
{
    public function testReturnCallbackStub()
    {
        $stub = $this->getMock(
          'SomeClass', array('doSomething')
        );

        $stub->expects($this->any())
             ->method('doSomething')
             ->will($this->returnCallback('callback'));

        // $stub->doSomething() returns callback(...)
    }
}

function callback() {
    $args = func_get_args();
    // ...
}
?>

Geri istediğini yap() ve uygun olarak besten $dayanan dönüş.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • vgeller1

    vgeller1

    22 Kasım 2009