разработка API модульного тестирования - PullRequest
2 голосов
/ 30 декабря 2010

Привет, мне поручили исследовать модульное тестирование с использованием инструментов, доступных на рынке.Мой вопрос: как мне написать API, который помог бы в написании юнит-тестов?Пример: я могу использовать nunit, чтобы написать что-то вроде этого, чтобы проверить, существует ли файл в данном месте.

<Test()> _
   Public Sub CheckOutputFileInfo()
    ReportPath = "D:temp\test.txt"
    Dim result As Boolean
    result = File.Exists(ReportPath)
    Assert.IsTrue(result)
End Sub

Я понимаю, что это не лучший пример, но мой вопрос: как мне включить nunit и разработать API?так что другие разработчики / тестировщики могут писать тестовые случаи, не заботясь о том, чтобы узнать о nunit.К вашему сведению, я никогда не писал API, это будет мой первый шанс.Любые рекомендации о том, с чего начать?спасибо

Ответы [ 3 ]

7 голосов
/ 30 декабря 2010

Я думаю, вам лучше позволить разработчикам использовать nUnit. Это уже красиво разработано и гибко. Если вы хотите упростить жизнь своим разработчикам, попробуйте создать некоторые вспомогательные классы, которые устанавливают тестовые объекты и образцы данных в конфигурациях, которые необходимы для множества различных тестов. Может быть, попробовать что-то вроде Шаблон создания метода . Это из действительно хорошей книги под названием xUnit Test Patterns , в которой описывается множество способов облегчения написания, чтения и обслуживания тестового кода. Большая часть книги доступна онлайн, и Brief Tour - хорошее место для начала.

3 голосов
/ 30 декабря 2010

Ваш пример не является строго модульным тестом, поскольку он касается файловой системы.

Тест не является модульным тестом, если:

  1. Говорит с базой данных
  2. Он связывается по сети
  3. Это касается файловой системы
  4. Он не может работать одновременно с другими вашими юнит-тестами
  5. Вы должны выполнить специальные действия в своей среде (например, редактировать файлы конфигурации), чтобы запустить его.

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

Вот отличная книга для начала:

http://artofunittesting.com/

1 голос
/ 30 декабря 2010

Почему вы хотите это сделать? NUnit и большинство альтернатив действительно просты в освоении и использовании. Задача при написании юнит-тестов заключается не в овладении API, а скорее в написании хороших тестов и тестируемого кода.

Чтобы эффективно использовать NUnit, вам нужно знать только атрибуты Test и TestFixture и SetUp и знать доступные утверждения в классе Assert. Это действительно просто!

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

...