Уже довольно давно я опубликовал пост «Как тестировать код финализатора (c#)», в котором делился опытом тестирования кода, реализованного в финализаторе. Не прошло и года, как тест все-таки упал. Подробности под катом.
Читать полностью »
Метка «nunit»
Как тестировать код финализатора (c#). Послесловие: тест все-таки упал
2014-06-16 в 11:52, admin, рубрики: .net, appdomain, dispose, finalizer, idisposable, nunit, testing, тестирование, финализатор, метки: .net, appdomain, c++, dispose, finalizer, idisposable, nunit, testing, финализаторНастройка TeamCity для новичков
2013-12-10 в 2:58, admin, рубрики: .net, ASP.NET, Git, msbuild, nunit, teamcity, Блог компании СКБ Контур, непрерывная интеграция, метки: ASP.NET, c++, Git, msbuild, nunit, teamcity, непрерывная интеграция Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать полностью »
Есть ли жизнь без Resharper-а — 2?
2013-08-07 в 10:16, admin, рубрики: .net, IDE, nunit, ReSharper, testing, Visual Studio, visual studio 2012, visual studio 2013, метки: IDE, nunit, ReSharper, testing, visual studio 2012, visual studio 2013После проверки того, что можно как то делать навигацию в студии и без решарпера, решил исследовать следующий важный для меня сценарий: а именно unit тестирование в студии (с использованием тестового фреймворка nunit).
Как тестировать код финализатора (c#)
2013-06-09 в 21:54, admin, рубрики: .net, appdomain, dispose, finalizer, idisposable, nunit, testing, тестирование, финализатор, метки: .net, appdomain, c++, dispose, finalizer, idisposable, nunit, testing, финализатор Одной из не очевидных задач, является тестирование кода, реализованного в финализаторе дотнетовского класса.
Данная заметка рассматривает один из способов решения этой задачи.
Введение в модульное тестирование для c# проектов в среде MonoDevelop
2013-05-28 в 16:12, admin, рубрики: nunit, tdd, Программирование, метки: c++, nunit, tdd, unit-testing Модульные тесты используются при разработке программного обеспечения. Они могут быть созданы как после написания исходного кода, так и до этого, все зависит от ваших предпочтений и вероисповедания, либо предпочтений вашей компании. Разработка через тестирование(TDD) вызывает довольно спорное впечатление. Кто-то считает, что это довольно бесполезная вещь, однако склонен не согласиться. Бесполезным TDD назвать точно нельзя. Создание теста покрывающего предполагаемое изменение в программе, а затем написание кода который бы позволил пройти этот тест, заметно упрощает разработку. Модульные тесты так же используются для проверки уже созданного функционала. Однако достичь 100% покрытия кода программы модульными тестами практически невозможно.
Читать полностью »
Автоматизация тестирования Web-приложений
2013-04-29 в 18:04, admin, рубрики: .net, bdd, Gangnam Style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты, разработка, тестирование, метки: .net, bdd, gangnam style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты
Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.
Путем проб и ошибок мы пришли к следующему технологическому стеку:
- SpecFlow (опционально): DSL
- NUnit: тестовый фреймворк
- PageObject + PageElements: UI-абстракиця
- Контекст тестирования (информация о целевом окружении, пользователях системы)
- Selenium.WebDriver
Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
Читать полностью »
ASP.NET MVC Урок E. Тестирование
2013-04-09 в 18:53, admin, рубрики: .net, ASP, asp.net mvc, nunit, tdd, метки: .net, asp.net mvc, c++, nunit, tddЦель урока. Научиться создавать тесты для кода. NUnit. Принцип применения TDD. Mock. Юнит-тесты. Интегрированное тестирование. Генерация данных.
Тестирование, принцип TDD, юнит-тестирование и прочее.
Тестирование для меня лично – это тема многих размышлений. Нужны или не нужны тесты? Но никто не будет спорить, что для написания тестов нужны ресурсы.
Рассмотрим два случая:
- Мы делаем сайт, показываем заказчику, он высылает список неточностей и дополнительных пожеланий, мы их бодро правим и сайт отдаем заказчику, т.е. выкладываем на его сервер. На его сервер никто не ходит, заказчик понимает, что чуда не произошло и перестает платить за хостинг/домен. Сайт умирает. Нужны ли там тесты?
- Мы делаем сайт, показываем заказчику, он высылает список правок, мы их бодро правим, запускаем сайт. Через полгода на сайте 300 уников в день и эта цифра растет изо дня в день. Заказчик постоянно просит новые фичи, старый код начинает разрастаться, и со временем его всё сложнее поддерживать.
Множественные Assertion’ы без прерываний в одном юнит-тесте на примере NUnit
2012-12-31 в 19:15, admin, рубрики: .net, nunit, тестирование, метки: .net, c++, nunit, unit-testing
В практике юнит-тестирования часто возникает желание сделать несколько Assertion'ов в одном тест-методе. В теории же, такой подход критикуется с двух основных позиций. Во-первых, семантически, один тест должен проверять только один кейс, не разрастаться. Во-вторых, при падении одного из Assertion’ов в цепочке, выполнение теста прервется и мы увидим сообщение об ошибке лишь от него, а до всех остальных дело не дойдет, что не даст наиболее полной картины произошедшего. Первый аргумент безусловно резонен и при написании тестов его всегда следует держать в голове, но фанатичное следование этому принципу зачастую не представляется разумным (пример далее). Устранению же второй проблемы посвящен этот пост. Будет представлен небольшой класс, позволяющий просто и лаконично обеспечить исполнение нескольких Assertion’ов без прерывания выполнения метода и с выводом сообщения об ошибке каждого из них.
Читать полностью »
Создаем NUnit тесты в BDD стиле
2012-10-26 в 18:41, admin, рубрики: .net, bdd, nunit, метки: bdd, nunitТихим пятничным вечером я заканчивал свой рабочий день покрывая тестами реализованную логику. Названия тестов я тщательно подбирал как и рекомендовал Рой. И вдруг я осознал, что понятное развернутое название теста превратилось в ужастного монстра и совсем перестало быть понятным. И более того перестало помещаться в 120 символов на экране.
И вот я вспомнил что мне где-то встечалось понятиe Behavior-Driven Development и тесты написанные в этом стиле намного читабельнее и понятнее. По запросу «nunit bdd» гугл выдает совсем немного результатов, но этот пост навел меня на интересную мысль. Методы Given и When не дают четкого описания условия и тем более описать больше чем одно условие наглядно не получится. Я решил слегка доработать решение.
Вот, кстати, то самое имя теста:
CreateMonthlyPaymentInvoice_WhenCustomerIsRegularCompany_ShouldCreateMonthlyUsageInvoiceWithoutBankFee.
Жутко, правда?
Читать полностью »