Как использовать атрибуты (annotations) в PHPUnit?

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

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

Как использовать атрибуты (annotations) в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

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

@elian.swift 

Атрибуты (annotations) в PHPUnit позволяют добавлять метаданные к тестам и провайдерам данных, чтобы изменить их поведение или настройки.


Чтобы использовать атрибуты в PHPUnit, необходимо выполнить следующие шаги:

  1. Аннотации можно добавлять к классу теста, методам тестов или провайдерам данных. Для добавления аннотации к классу теста, используйте комментарии в начале класса. Для добавления аннотаций к методам тестов или провайдерам данных, используйте комментарии перед определением метода.
  2. Создайте пользовательский атрибут, наследуясь от PHPUnitFrameworkTestAttribute. Например:
1
2
3
4
5
use PHPUnitFrameworkTestAttribute;

class SlowTest extends TestAttribute {
    // Дополнительный код, если требуется
}


  1. Примените созданный пользовательский атрибут к методу теста или провайдеру данных, добавив аннотацию перед методом. Например:
1
2
3
4
5
6
7
8
class MyTest extends PHPUnitFrameworkTestCase {
    /**
     * @SlowTest
     */
    public function testSomethingSlow() {
        // Тестовый код
    }
}


  1. Чтобы обработать атрибут во время выполнения теста, воспользуйтесь функцией markTestAsSkipped(), чтобы пропустить тест, или любой другой метод PHPUnitFrameworkTestResult для изменения поведения теста. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class MyTest extends PHPUnitFrameworkTestCase {
    /**
     * @SlowTest
     */
    public function testSomethingSlow() {
        if ($this->getTestResultObject()->isInIsolation()) {
            $this->markTestSkipped('Тест в изоляции');
        }
        
        // Тестовый код
    }
}


В итоге, при запуске тестов PHPUnit учитывает атрибуты и выполняет необходимые действия в соответствии с их значениями.