Как организовать именование спеков в PHPSpec?

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

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

Как организовать именование спеков в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от keyon.brown , 8 месяцев назад

@jose 

В PHPSpec именование спеков может проводиться согласно следующим правилам:

  1. Имя файла спека должно иметь формат ИмяКлассаСпекаSpec.php, где ИмяКлассаСпека является именем класса, спецификацию которого вы пишете. Например, для спека класса Calculator имя файла может быть CalculatorSpec.php.
  2. Имя класса спека должно иметь формат ИмяКлассаСпекаSpec, где ИмяКлассаСпека является именем класса, спецификацию которого вы пишете, с суффиксом Spec. Например, для класса Calculator имя класса спека может быть CalculatorSpec.
  3. Имена методов спека должны быть описательными и отражать поведение, которое вы тестируете. Обычно используются глаголы в форме shouldDoSomething или shouldBeSomething. Например, itShouldReturnSumOfTwoNumbers или itShouldThrowExceptionOnInvalidInput.
  4. Имена свойств или переменных, используемых в спеке, должны быть описательными и отражать их назначение. Например, $calculator или $sum.
  5. Если у вас есть несколько контекстов или состояний, которые требуют разных проверок, вы можете использовать разделение на методы с помощью комментариев. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    /**
     * @var Calculator
     */
    private $calculator;

    /**
     * @var int
     */
    private $sum;

    function let(Calculator $calculator)
    {
        $this->calculator = $calculator;
    }

    function it_should_return_sum_of_two_numbers()
    {
        $this->sum = $this->calculator->add(2, 3);

        $this->sum->shouldBe(5);
    }

    // ...


Такое именование спеков помогает делать код более понятным и легко читаемым.

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

от hanna_jacobson , 8 месяцев назад

@jose 

Организация именования спеков в PHPSpec может быть достигнута следующим образом:

  1. Называйте спеки с "Spec" в конце имени файла: Название класса спека должно быть суффиксом "Spec". Например, для класса MyClass, спек должен быть назван MyClassSpec.php.
  2. Называйте методы спеков в соответствии с их тестируемой функциональностью: Имена методов должны быть описательными и отражать то, что тестируется. Например, если вы тестируете метод calculateTotal() в классе MyClass, метод спека может быть назван it_calculates_total_correctly().
  3. Используйте комментарии, чтобы добавить дополнительную информацию о том, что тестируется: Если имя метода спека не может полностью описать то, что в нем происходит, вы можете использовать комментарии для дополнительного объяснения. Например, перед основным блоком кода в методе спека вы можете добавить комментарий, которым рассказываете, что именно тестируется.
  4. Разбивайте спеки на логические группы: Если ваш класс имеет много методов, может иметь смысл разбить спеки на логические группы, соответствующие функциональным группам в классе. Например, вы можете создать файл спека MyClassSpec.php и в нем разместить несколько методов спека, охватывающих разные аспекты класса.
  5. Используйте адекватные названия классов спека: Названия классов спека должны быть декларативными и отражать то, что тестируется. Например, для класса MyClass, класс спека может быть назван MyClassSpec.


Напомним, что указанные выше соглашения не являются строгими правилами, а скорее рекомендациями для организации именования спеков в PHPSpec.