Open Source: PHP
387 subscribers
3 photos
42 links
Помощь Open Source продуктам на PHP
Download Telegram
Forwarded from Mikhail Savin
Rector-правило для соблюдения AAA паттерна в тестах

По результатам моего опроса почти половина разработчиков пользуются этим паттерном при написании тестов, но я лично периодически забываю "отбивать" секции комментами

Теперь можно делегировать это Rector'у - добавил правило EnforceAaaPatternRector.
Оно просто вставляет комментарии (и удаляет старые, если они неверно расположены), например:


public function testFoo(): void
{
// Arrange
$date = new DateTimeImmutable('2025-01-01');

// Act
$formatted = $date->format('Y-m-d');

// Assert
self::assertEquals('2025-01-01', $formatted);
}


Если же ваши тесты изначально не структурированы под это, то будут мисплейсы. Например, если вы делаете запрос, ассерты на него, потом новый запрос и новые ассерты (так часто тестят валидацию/авторизацию).
Надеюсь, правило поможет сделать такие нарушения более явными на кодревью
🤔3👍2👎1