Skip to content

Commit 01c1ac7

Browse files
authored
Update 014-tests.md
1 parent 370c234 commit 01c1ac7

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

content/014-tests.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ public function test_returns_moon_phase_data(): void
5151

5252
Мы можем написать в код прямо контроллере и добавить туда с десяток функций, которые будут вызывать другие функции, и в итоге получим правильный ответ. Но это фигня.
5353

54-
Вместо этого как можно больше должно быть unit тестов — тестов, которые проверяют отдельные части кода.
55-
А что бы проверять отдельные части кода, вам придется использовать объекты:
54+
Вместо этого лучше сосредоточиться на написании как можно большего числа тестов, которые проверяют поведение отдельных компонентов в изоляции.
55+
56+
А для этого вам потребуется использовать объекты:
5657

5758
```php
5859
// Хорошо ✅
@@ -68,7 +69,10 @@ public function test_moon_phase_for_known_date(): void
6869
}
6970
```
7071

71-
Теперь ни у кого не получиться добавить новый метод в контроллер или не предназначеное для этого уровня.
72+
Такой подход заставляет вас писать код, который легко проверить и переиспользовать.
73+
Вы отделяете логику расчёта (в классе `MoonPhase`) от внешних интерфейсов (контроллеров, команд, CLI, API), и это делает код переносимым и модульным.
74+
75+
И самое важное: теперь никто не сможет просто так "вставить" бизнес-логику в контроллер — просто потому что она **уже вынесена в объект**, и её поведение **зафиксировано тестами**.
7276

7377
### Arrange–Act–Assert (AAA)
7478
Разделяйте тест на три логических фазы:

0 commit comments

Comments
 (0)