Как объявить зависимости для класса в PHPSpec?

Пользователь

от abel , в категории: PHP , 10 месяцев назад

Как объявить зависимости для класса в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jedidiah.brown , 10 месяцев назад

@abel 

В PHPSpec зависимости класса объявляются через метод let() в начале спецификации класса.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use AppSomeClass;

class MySpec extends PhpSpecObjectBehavior
{
    function let(SomeClass $dependency)
    {
        $this->beConstructedWith($dependency);
    }
    
    // ...
}


В приведенном примере SomeClass является зависимостью класса, который вы хотите протестировать. Зависимость передается через конструктор класса MySpec с помощью метода beConstructedWith().


Теперь вы можете использовать зависимость $dependency в своих спецификациях класса. Например:

1
2
3
4
function it_does_something(SomeClass $dependency)
{
    // использование зависимости $dependency для проверки какого-либо поведения
}


Обратите внимание, что в PHPSpec классы зависимостей могут передаваться и как аргументы методов спецификации (как в примере выше), так и как переменные экземпляра класса (объявленные внутри let()). В любом случае, PHPSpec будет автоматически создавать экземпляры зависимостей и передавать их в методы/конструкторы, в которых они объявлены.