(PHP) Модульное тестирование с внедрением зависимостей (DI) - PullRequest
0 голосов
/ 09 октября 2011

За последние несколько дней я много читал об инъекциях зависимости. Теперь, так как я пытаюсь улучшить свои навыки phpunit, я думал, как реализовать этот DI. в моих модульных тестах.

Скажем, у меня есть два объекта:

class Event{
}

class Shift{
    public function __construct(Event $e)
    {
        (...)
    }
}

Вот как я, по сути, понимаю DI. Теперь я хочу написать тест для моего конструктора смены:

class ShiftTest extends
    \ModelTestCase
{
    public function testCanCreateShift()
    {
        $e = new \Js\Entity\Event();
        $this->assertInstanceOf('JS\Entity\Shift', new \JS\Entity\Shift($e));
    }
}

Но теперь я не хочу определять здесь полный объект события. Итак, каков рекомендуемый способ создания моего объекта события в phpUnit?

1 Ответ

3 голосов
/ 09 октября 2011

Это то, что издевается, заглушки. и т. д. используются для. Вы создаете SUT (тестируемая система) и макетируете все зависимости. Во-первых, вы не смогли бы сделать это без DI.

...