Как использовать зависимости методов (method dependencies) в PHPUnit?

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

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

Как использовать зависимости методов (method dependencies) в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от stanford_mosciski , 9 месяцев назад

@wilburn 

В PHPUnit можно использовать зависимости методов с помощью атрибута @depends. Этот атрибут позволяет указать, что тестовый метод зависит от выполнения другого метода.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class MyTest extends PHPUnitFrameworkTestCase
{
    public function testA()
    {
        $this->assertTrue(true);
        return 'valueA';
    }

    /**
     * @depends testA
     */
    public function testB($valueA)
    {
        $this->assertEquals('valueA', $valueA);
    }
}


В этом примере метод testB зависит от выполнения метода testA, который возвращает значение 'valueA'. Значение этой зависимости передается в качестве аргумента в метод testB.


Обратите внимание, что порядок выполнения тестовых методов не гарантирован, поэтому если тест testB зависит от других тестовых методов, это может привести к непредсказуемым результатам.


Также можно указывать несколько зависимостей, используя несколько атрибутов @depends:

1
2
3
4
5
6
7
8
/**
 * @depends testA
 * @depends testC
 */
public function testB($valueA, $valueC)
{
    // ...
}


В этом случае метод testB будет выполнен только после успешного выполнения методов testA и testC, а их возвращаемые значения будут переданы в качестве аргументов в testB.