Лучшая практика для интеграции TDD с разработкой веб-приложения?

Я забыл добавить драйвер JDBC PostgreSQL в проект Mvnrepository .

Gradle:

// http://mvnrepository.com/artifact/postgresql/postgresql
compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4'

Maven:


    postgresql
    postgresql
    9.0-801.jdbc4

Вы также можете загрузить JAR и импортировать в свой проект вручную.

27
задан Bill the Lizard 26 September 2009 в 16:45
поделиться

7 ответов

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

Для тестирования GUI некоторые люди как селен . Другие жалуются, что это - боль для установки.

18
ответ дан Jeff Sternal 28 November 2019 в 05:44
поделиться

Я разделяю на уровни приложение и по крайней мере модульный тест от предъявителя/контроллера (какой бы ни Ваше предпочтение, mvc/mvp) к слою данных. Тем путем у меня есть хорошее тестовое покрытие по большей части кода, который записан.

я посмотрел на FitNesse, Watin и Selenium как опции автоматизировать тестирование UI, но я еще не имею вокруг к использованию их ни на каких проектах, таким образом, мы придерживаемся человеческого тестирования. FitNesse был тем, к которому я склонялся, но я не мог представить этот, а также TDD представления (который делает меня плохо? Я надеюсь нет!).

4
ответ дан nachojammers 28 November 2019 в 05:44
поделиться

Это хороший вопрос, на который я тоже буду подписываться:)

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

Для меня я сохраняю пользовательский интерфейс настолько легким, насколько это возможно (обычно только несколько строк кода) и проверяю дерьмо из всего остального. По крайней мере, тогда я могу быть уверен, что все, что попадает в интерфейс, настолько корректно, насколько это возможно.

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

2
ответ дан Rob Cooper 28 November 2019 в 05:44
поделиться

Обычная практика должна переместить весь код, Вы можете из codebehind, и в объект можно протестировать в изоляции. Такой код будет обычно следовать за MVP или шаблонами разработки MVC. Если Вы будете искать на "Иглу Носорога то", Вы, вероятно, найдете ссылку на ее репозиторий Подрывной деятельности. Тот код стоит исследования, поскольку он демонстрирует одну из лучших реализаций MVP на Веб-формах, которые я видел.

Ваш codebehind, при следовании за этим шаблоном, сделает две вещи:

  1. Транзит все пользовательские действия предъявителю.
  2. данные Рендеринга, обеспеченные предъявителем.

Поблочное тестирование предъявитель должен быть тривиальным.

Обновление: Иглу Носорога может быть найдена здесь: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/rhino-igloo /

2
ответ дан Thomas Eyde 28 November 2019 в 05:44
поделиться

Были, примеряет получение бесплатной Автоматизации UI Microsoft (включенный в Платформу.NET 3.0) для работы с веб-приложениями (ASP.NET). Немецкая компания под названием Artiso, оказывается, записала запись в блоге, которая объясняет, как достигнуть этого ( ссылка ).

Однако их сообщение в блоге также связывает MSDN Вебкасты, который объясняет Платформу Автоматизации UI с winforms и после того, как я взглянул на это, я заметил, что Вам нужен AutomationId для получения ссылки на средства управления уважением. Однако в веб-приложениях, средства управления не имеют AutomationId.

я спросил Thomas Schissler (Artiso) об этом, и он объяснил, что это было главным недостатком на InternetExplorer. Он сослался на более старую технологию Microsoft ( MSAA) и надеялся сам, что IE8 сделает это лучше.

Однако я также давал Watin попытку, и это, кажется, работает вполне прилично. Я даже любил Воск, который позволяет реализовывать простые тестовые сценарии с помощью рабочих листов Microsoft Excel.

0
ответ дан Mephisztoe 28 November 2019 в 05:44
поделиться

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

0
ответ дан 28 November 2019 в 05:44
поделиться

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

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

Тщательно выбирайте, что вы тестируете - не пишите тесты бездумно За все. Иногда это скучная задача, поэтому не усложняйте ее. Если вы напишете слишком много тестов, вы рискуете отказаться от этой задачи из-за трудоемкого обслуживания.

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

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

Если вам не нравится писать тесты, вы, вероятно, делаете это неправильно;)

2
ответ дан 28 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: