Я пытаюсь войти в рабочую среду с помощью phpSpec для создания своих классов. Я наткнулся на тестирование метода дескриптора на одном из моих обработчиков событий.phpSpec no beCalled ([array: 0]) совпадение найдено для null
Моя спецификация:
use App\Order;
use App\Models\Payments\Payment;
use App\Services\Payments\PaymentService;
use App\Events\Payments\AccountPayment;
class RecordPaymentTransactionSpec extends ObjectBehavior
{
function let(PaymentService $paymentService)
{
$this->beConstructedWith($paymentService);
}
function it_is_initializable()
{
$this->shouldHaveType('App\Handlers\Events\Payments\RecordPaymentTransaction');
}
function it_should_record_payment_transaction(AccountPayment $event)
{
$this->paymentService->recordPayment($event)->shouldBeCalled();
}
}
И это моя реализация:
class RecordPaymentTransaction {
public $paymentService;
/**
* Create the event handler.
*
* RecordPaymentTransaction constructor.
* @param PaymentService $paymentService
*/
public function __construct(PaymentService $paymentService)
{
$this->paymentService = $paymentService;
}
/**
* Handle the event.
*
* @param AccountPayment $event
* @return void
*/
public function handle(AccountPayment $event)
{
$this->paymentService->recordPayment($event);
}
}
Однако, я получаю эту ошибку:
- it should record payment transaction
no beCalled([array:0]) matcher found for null.
не может видеть то, что я здесь делаю неправильно , Помоги пожалуйста.
Это сработало, спасибо вам большое за разъяснение. –
@AndresZapata, пожалуйста;) – DonCallisto