Насмешливый класс, который возвращает другой издевательский класс - PullRequest
0 голосов
/ 27 марта 2019

У меня есть класс

<?php

class Cards
{
    public function __construct($id) {
        $this->id = $id;
    }

    public function add($card) {
        // Make API call
        return true;
    }
}

и другой класс, который возвращает класс карт

<?php

class Payment
{
    public function cards() {
        return new Cards('1');
    }
}

И я не могу понять, как имитировать Платеж, поэтому он возвращает поддельные Карты,По сути, я хочу

Mock Payment, чтобы он возвращал поддельные карты, которые позволили бы смоделировать и протестировать такую ​​функцию, как

function() {
    $vault = new Payment;
    $cards = $vault->cards();

    if ($cards->add()) {
        // do stuff
    }
}

, без вызова API для обработчика платежей.

1 Ответ

0 голосов
/ 28 марта 2019

Проблема в том, что вы пытаетесь создать экземпляр класса Card с помощью ключевого слова new. Это делает (почти) невозможным издеваться над ним. Вы можете использовать несколько различных методов для замены ключевого слова new, проще всего было бы передать экземпляр в конструктор Payment или непосредственно в метод.

...