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

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

от elian.swift , в категории: PHP , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от vicenta_kertzmann , год назад

@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 учитывает атрибуты и выполняет необходимые действия в соответствии с их значениями.

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

от forest , 2 дня назад

@elian.swift 

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


Вот пример того, как можно использовать атрибуты в PHPUnit:

  1. Создайте пользовательский атрибут, унаследованный от PHPUnitFrameworkTestAttribute. Например, создадим атрибут SlowTest:
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. В методе теста вы можете обрабатывать атрибуты, например, пропускать тест или изменять его поведение с помощью методов markTestSkipped() или других методов класса 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 будет учитывать атрибуты, примененные к методам, и выполнять соответствующие действия в зависимости от их значений. Атрибуты предоставляют удобный способ изменять поведение ваших тестов и делать их более гибкими.