Я забыл добавить драйвер 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 и импортировать в свой проект вручную.
Поблочное тестирование будет достижимо при разделении слоев соответственно. Поскольку Rob Cooper подразумевал, не помещают логики в Ваш WebForm кроме логики для управления представлением . Вся другая логика материала и слои персистентности должны быть сохранены в отдельных классах, и затем можно протестировать тех индивидуально.
Для тестирования GUI некоторые люди как селен . Другие жалуются, что это - боль для установки.
Я разделяю на уровни приложение и по крайней мере модульный тест от предъявителя/контроллера (какой бы ни Ваше предпочтение, mvc/mvp) к слою данных. Тем путем у меня есть хорошее тестовое покрытие по большей части кода, который записан.
я посмотрел на FitNesse, Watin и Selenium как опции автоматизировать тестирование UI, но я еще не имею вокруг к использованию их ни на каких проектах, таким образом, мы придерживаемся человеческого тестирования. FitNesse был тем, к которому я склонялся, но я не мог представить этот, а также TDD представления (который делает меня плохо? Я надеюсь нет!).
Это хороший вопрос, на который я тоже буду подписываться:)
Я все еще относительно новичок в веб-разработке, и я тоже смотрю на большой код, который в основном не проверен.
Для меня я сохраняю пользовательский интерфейс настолько легким, насколько это возможно (обычно только несколько строк кода) и проверяю дерьмо из всего остального. По крайней мере, тогда я могу быть уверен, что все, что попадает в интерфейс, настолько корректно, насколько это возможно.
Это идеально? Возможно, нет, но, по крайней мере, он все еще довольно высоко автоматизирован, и основной код (где происходит большая часть "магии") все еще имеет довольно хорошее покрытие ..
Обычная практика должна переместить весь код, Вы можете из codebehind, и в объект можно протестировать в изоляции. Такой код будет обычно следовать за MVP или шаблонами разработки MVC. Если Вы будете искать на "Иглу Носорога то", Вы, вероятно, найдете ссылку на ее репозиторий Подрывной деятельности. Тот код стоит исследования, поскольку он демонстрирует одну из лучших реализаций MVP на Веб-формах, которые я видел.
Ваш codebehind, при следовании за этим шаблоном, сделает две вещи:
Поблочное тестирование предъявитель должен быть тривиальным.
Обновление: Иглу Носорога может быть найдена здесь: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/rhino-igloo /
Были, примеряет получение бесплатной Автоматизации UI Microsoft (включенный в Платформу.NET 3.0) для работы с веб-приложениями (ASP.NET). Немецкая компания под названием Artiso, оказывается, записала запись в блоге, которая объясняет, как достигнуть этого ( ссылка ).
Однако их сообщение в блоге также связывает MSDN Вебкасты, который объясняет Платформу Автоматизации UI с winforms и после того, как я взглянул на это, я заметил, что Вам нужен AutomationId для получения ссылки на средства управления уважением. Однако в веб-приложениях, средства управления не имеют AutomationId.
я спросил Thomas Schissler (Artiso) об этом, и он объяснил, что это было главным недостатком на InternetExplorer. Он сослался на более старую технологию Microsoft ( MSAA) и надеялся сам, что IE8 сделает это лучше.
Однако я также давал Watin попытку, и это, кажется, работает вполне прилично. Я даже любил Воск, который позволяет реализовывать простые тестовые сценарии с помощью рабочих листов Microsoft Excel.
Ivonna может модульный тест Ваши представления. Я все еще рекомендовал бы переместить большую часть кода в другие части. Однако некоторый код всего принадлежит там, как ссылки на обработчики событий управления или средства управления.
Я бы обычно избегал тестирования, которое предполагает использование элементов пользовательского интерфейса. Я предпочитаю интеграционное тестирование, которое проверяет все, от уровня вашей базы данных до уровня представления (но не фактического макета).
Попытайтесь запустить набор тестов до написания строки реального кода в новом проекте, так как тесты сложнее писать позже.
Тщательно выбирайте, что вы тестируете - не пишите тесты бездумно За все. Иногда это скучная задача, поэтому не усложняйте ее. Если вы напишете слишком много тестов, вы рискуете отказаться от этой задачи из-за трудоемкого обслуживания.
Постарайтесь объединить как можно больше функциональных возможностей в одном тесте. Таким образом, если что-то пойдет не так, ошибки все равно будут распространяться. Например, если у вас есть класс для создания дайджеста - проверьте фактический результат, не все вспомогательные функции.
Не доверяйте себе . Предположите, что вы всегда будете делать ошибки, и поэтому вы пишете тесты, чтобы облегчить вашу жизнь, а не усложнить ее.
Если вам не нравится писать тесты, вы, вероятно, делаете это неправильно;)