2016-11-24 3 views
0

TDD утверждает, что сначала должен написать тесты. Скажем, я хочу написать услугу, как начать писать тесты для службы, если у меня еще ничего нет? Какой будет первый тест? Попытка создать экземпляр службы и получить исключение? ПримерПроверьте код, который не существует

PHP Laravel на основе:

class ServiceTest extends TestCase 
{ 
    public function testServiceExists() 
    { 
     $service = App::make('grid'); 
    } 
} 

Результат:

PHPUnit 5.5.4 by Sebastian Bergmann and contributors.

E 1 /1 (100%)

Time: 123 ms, Memory: 14.00MB

There was 1 error:

1) ServiceTest::testServiceExists ReflectionException: Class grid does not exist

/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:749 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:644 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:709 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237 /home/supertrall/domains/md.local/laravel/tests/Grid/ServiceTest.php:20

ERRORS! Tests: 1, Assertions: 0, Errors: 1.

ответ

2

Встречая таких ошибок является хорошей вещью в TDD. Это подразумевает, что вам нужно разрешить ошибку, чтобы встретить другую.

При кодировании в TDD вы программируете wishful thinking. Другими словами, вы пишете код, который использует компонент, прежде чем реализовать сам компонент. Это помогает выяснить, какие функции и данные вам нужны, и после этого открытия приведет вас к более простым и полезным API.

Несмотря на то, что концепции TDD не очень сложно изучить, привыкание к первому подходу TDD к тестированию сложно и требует много времени. Вы на правильном пути, просто прочитайте больше и испытайте больше, чтобы успеть с методологией.

1

Вы на правильном пути!

TDD - это методология. Для этого требуется набор дисциплин, а один из них - красный, зеленый, рефакторинг. Речь идет о написании теста в первую очередь, заставьте его пройти, а затем реорганизовать код.

  • 'Red' - написать неудачу тест
  • 'зеленый' - сделать тестовый проход
  • 'Refactor' - очистить код

Да, что класс должен существует может быть тест тоже!

Некоторая информация о по адресу:

Смежные вопросы