0
我正在測試一個類的PHPSpec,這很好,直到我想創建一個具有靜態函數的類的模擬。PHPSpec:模擬靜態方法
類我測試:
<?php
namespace App\Service;
class PaymentService
{
public function paymentVerification($orderId, array $data)
{
...
// Get the payment details
$payment = \PayPal\Api\Payment::get($data['payKey'], $apiContext);
...
}
}
PHPSpec類:
<?php
namespace App\Spec\Service;
use PhpSpec\ObjectBehavior;
use Prophecy\Argument;
class PaymentServiceSpec extends ObjectBehavior
{
/**
* @param \PayPal\API\Payment $payment
*/
function it_should_return_false_when_the_payment_verification_failed($payment)
{
...
// This throws a PHP Fatal error: Call to undefined method PhpSpec\Wrapper\Collaborator::get() in
$payment::get(Argument::exact($data['payKey']), Argument::exact($apiContext))->shouldReturn(array('foobar'));
...
$this->paymentVerification($orderId, $data)->shouldReturn(false);
}
}
我怎麼能嘲笑\貝寶\阿比\付款::得到($數據[ 'payKey'],$ APICONTEXT); ? 目前這拋出一個PHP致命錯誤:調用未定義的方法PhpSpec \ Wrapper \ Collaborator :: get()
這怎麼能正確完成?提前致謝!
已覆蓋[這裏](http://stackoverflow.com/questions/2357001/phpunit-mock-objects-and-static-methods9) – max
@papirtiger沒有T還沒有。目前的問題是關於phpspec,而不是phpunit。 –