Подтвердить что ты не робот

Как перенести вашу парадигму на тестовую разработку

Я уже несколько лет слышал о разработке, основанном на тестировании, и я никогда не уделял ему слишком много внимания с практического уровня до недавнего времени, когда я начал больше интересоваться .NET MVC. Я много играл с MVC Storefront Sample, и я понимаю, насколько круто и полезно, что подход, основанный на проверке, может быть, Тем не менее, я программировал с использованием "теста последнего" подхода в течение длительного времени, и когда дело доходит до бизнеса, я всегда могу лучше оценить свои усилия с помощью подхода, который я больше всего знаком.

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

Каков наилучший способ для меня перевести мой разумный план на создание приложения, чтобы я мог эффективно работать с тестовым развитием за короткий промежуток времени?

4b9b3361

Ответ 1

Лучший способ поднять TDD - это идти вперед и делать это. Это единственный способ до сих пор мне удастся получить "инфицированных" сотрудников - по крайней мере, сейчас у вас есть хорошая оценка преимуществ заранее.

С более практичной точки зрения, хотя, я думаю, вы уже выделили одну из ключевых идей - это изменение в планировании требований к созданию приложения. Какую бы методологию вы в настоящее время не использовали, если вы видите слово "требование", вы можете мысленно подумать "тестовый пример" и, по крайней мере, намерены сначала написать тестовый пример. Но, как и другие ответы, TDD не является решением "все или ничего". Любой тест, который вы пишете, всякий раз, когда вы пишете его, до или после, полезен. Точно так же не думайте, что вы можете когда-либо добраться до состояния, где вы пишете все тесты заранее - это цикл.

Моим любимым является псевдокод в конце этот элемент в FAQ JUnit. Рамка тестового случая - бесконечный цикл. Прыгайте в любом месте, любой тест, который вы пишете, поможет, и вы не пожалеете об этом.

Ответ 2

Вы все еще можете проверить последнее. Все в порядке. Мы простим вас.

Узнайте, как инструменты unit test работают на вашем текущем языке.

Начните записывать модульные тесты для того, над чем вы сейчас работаете.

В конце концов, вы можете перейти на код-немного-тест-немного. Тогда тест-маленький-код-немного.

Чистая разработка, основанная на тестах, является идеальным. Прагматично, большинство людей тест-мало-кодовое-немного. Больше похоже на тестовое рулевое управление или тестирование, а не на тест-драйв.

Начните сейчас. Испытайте все, что у вас есть.

Ответ 3

Вам нужно практиковать.

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

Когда у вас есть идея для нового теста или задайте себе вопрос о том, как код ведет себя при определенных условиях, добавьте новый тест в свой список.

Я бы рекомендовал вам прочитать Test Driven Development; это очень хорошее введение в TDD, а также содержит множество справочных материалов (называемых шаблонами).

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

Несколько советов, как только вы начнете:

  • Добавьте новый сбойный тест, прежде чем исправлять любые проблемы в коде.

  • Постарайтесь никогда не писать какую-либо строку кода без проверки на неудачу - это конечная цель.

Ответ 4

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

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

Если вы можете найти некоторых единомышленников, подумайте о проведении кодирования dojo; это отличный, интересный способ изучить новый навык программирования: http://codingdojo.org/

Ответ 5

В дополнение к тому, что говорит С.Лотт, посмотрите, как структурирована структура MVC Storefront.

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

Взгляд на то, как TDD требует от вас структурирования программы, действительно поможет, когда вы пройдете основы (???) Unit

Ответ 6

Даже если вы сначала пишете код, спросите себя, как вы его пишете, "можно ли это проверить?" Если это не так, то вы можете переосмыслить свой дизайн для конкретной части кода, который вы пишете. Если да, то продолжайте и закончите, а потом напишите некоторые тесты. Я сейчас сам в коде, немного-образном, маленьком мышлении.