Одне з принципів TDD полягає в тому, що ви дозволяєте TDD в деяких випадках впливати на ваш дизайн. Ви пишете тест для системи, потім пишете код, щоб зробити тестовий прохід, підтримуйте залежності якомога дрібніше.
Для мене є лише дві речі, які я не тестую в рамках одиничного тестування:
По-перше, я не перевіряю візуальні елементи та те, як виглядають речі. Я перевіряю, що об'єкт буде знаходитись у потрібному місці після його оновлення, що камера буде скидати об'єкт поза його межами, що трансформації (принаймні ті, що виконуються поза шейдерами) виконуються належним чином перед передачею графічному двигуну , але як тільки він потрапляє у графічну систему, я малюю лінію. Мені не подобається намагатися знущатися над такими предметами, як DirectX.
По-друге, я не дуже перевіряю основну функцію циклу гри. Я перевіряю, що кожна система буде працювати, коли вона проходить розумну дельту, і що системи працюють правильно разом, коли потрібно. Тоді я просто оновлюю кожну систему правильною дельтою в ігровому циклі. Насправді я міг би провести тест, який би показав, що кожна система називається з правильною дельтою, але в багатьох випадках я вважаю, що це надмірна кількість (якщо ви не займаєтеся складною логікою, щоб отримати свою дельту, то це не зайвий рівень).