2009-04-03 5 views
7

Проведя несколько часов чтения о модульного тестирования и тест ведомой развития здесь на StackOverflow и на других сайтах посты указал мне, я знаю две вещи:Помогите мне начать с модульного тестирования в Visual Studio 2008

  1. I хотите использовать его
  2. Я не знаю, с чего начать

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

С чего начать? Предположите, что я ничего не знаю. :)

+0

Помогите мне начать изучать английский или хотя бы прочитать мой пост, прежде чем нажимать «POST». – belgariontheking

ответ

4

Получить книгу Pragmatic Unit Testing in C# with NUnit или Test-Driven Development with Microsoft.NET и работать через один из них. Эти принципы будут применимы ко многим различным структурам тестирования, хотя конкретные идиомы могут быть разными.

+1

Я бы порекомендовал также предстоящий «The Art of Unit Testing» Роя Ошероу - http://www.amazon.com/Art-Unit-Testing-Examples-NET/dp/1933988274/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid= 1238789517 & SR = 8-1 –

2

Напишите простой класс калькулятора с несколькими методами для операций и свойством для индикатора. Создавайте модульные тесты при написании класса.

Затем прочитайте «Эффективная работа с устаревшим кодом» - это покажет вам, как добавить модульное тестирование к старым неприятным проектам.

2

Для меня я начал с написания модульных тестов для некоторого нашего низкоуровневого кода манипуляции строкой. Я создал новый проект для тестирования и связал его в строковой библиотеке. Затем я прошел через каждый метод и написал для них единичные тесты - граничные условия, ожидаемые выходы для известных входов и т. Д. Сначала это казалось бессмысленным excersize, но затем .........

Я нашел Жук!!

Я продаю.

Итак, теперь я добавляю к тестирующему проекту, когда я продвигаюсь вверх по пищевой цепи в наших библиотеках.

2

Я бы загрузил ReSharper (и следующие плагины: Исключительный, Агент Смит, Агент Джонсон), инструмент №1 для улучшения качества кода и ускорения разработки. Resharper не является бесплатным, но это стоит денег;)

Затем загрузить XUnit: http://xunit.codeplex.com

Для создания теста прост:

public class MyObjectTest 
{ 
    MyObject _objectToTest = new MyObject(); 

    [Fact] 
    private void TestStart() 
    { 
    _objectToTest.Start(); 
    Assert.True(_objectToTest.IsStarted); 
    } 
} 

ReSharper, интегрированный с XUnit, даст вам значок рядом с каждым методом тестирования. Значок позволяет протестировать (и отладить) метод непосредственно в среде IDE без необходимости запуска всей программы. Не может быть проще.

Большинство разработчиков сказали бы, что разработка, основанная на тестах, означает, что вы сначала создаете тест и объект после него. Обычно я начинаю с создания класса, добавляя к нему обязательные методы, а затем создаю тест.Это немного быстрее, и вы, вероятно, начнете рефакторинг класса, когда начнете строить тест.

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

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