Как выполнить модульное тестирование кода F # в Visual Studio 2008? - PullRequest
4 голосов
/ 08 февраля 2009

Я новичок в F #, и я намереваюсь создать новый проект F # и выполнить его модульное тестирование с помощью F # в Visual Studio 2008, но в мастере модульного тестирования Visual Studio 2008 нет опции проекта F # (просто C Опции C # и VB).

  1. Возможно ли модульное тестирование F #?
  2. Возможно ли модульное тестирование F # с проектом F # test?
  3. Возможно ли модульное тестирование F # с проектом F # test в Visual Studio 2008?
  4. Как это сделать, если в Visual Studio 2008 нет мастера?

Ответы [ 6 ]

4 голосов
/ 09 февраля 2009

Эта ссылка описывает использование системы тестирования VS с F #. Вы делаете это почти так же, как с C #.

Недостатком является то, что, по-видимому, VS IDE не будет автоматически поднимать его - я считаю, что вам нужно запустить из командной строки, используя mstest.exe .

Редактировать: О, еще одна классная вещь с F #, это FsCheck . Это позволяет вам писать простые тесты, а система FsCheck пытается опровергнуть их с помощью случайного тестирования.

4 голосов
/ 09 февраля 2009
  1. Если вы генерируете код .NET, можно выполнить модульное тестирование F # с помощью nunit, если интерфейс достаточно CLI-совместим.
  2. Nunit работает со сборками .NET, а не с каким-либо конкретным языком. Если вы можете удалить атрибут [TestFixture] для класса и удалить атрибут [Test] для открытого метода в определенном классе, который возвращает void, тогда NUnit может запустить его.
  3. Не знаю.
  4. Не знаю.
4 голосов
/ 08 февраля 2009

Я нашел эту статью о тестировании f # с помощью nunit (ссылка здесь ). Однако я помню, что есть еще один способ проверить правильность кода функционального языка (я «работал» с Clean, который похож на Haskell для моего бакалавра). Просто не помню точно, как они это называли, я помню, это больше похоже на математическое доказательство. Кроме того, я не уверен, что он работает для F #, так как он немного отличается от языков Haskell, если я правильно прочитал.

3 голосов
/ 12 февраля 2009

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

3 голосов
/ 08 февраля 2009

Ничто не заставляет вас использовать F # для проверки F #. Вы можете просто создать сборку модульного теста на C #, VB или другом поддерживаемом языке .NET и просто ссылаться на сборку F #, необходимую для выполнения тестов. Вы сделали бы это так же, как вы создали бы модульные тесты для любой другой сборки .NET.

2 голосов
/ 08 февраля 2009

Вы спрашиваете, возможно ли провести модульное тестирование в F #, или вы спрашиваете, есть ли для него мастер? Модульное тестирование возможно на любом языке, на самом деле, функциональные языки - это мечта юнит-тестировщиков (я слышал, что так описано). Так как все статично, и вы проверили все крайние случаи, которые вы по существу проверили в каждом случае.

РЕДАКТИРОВАТЬ: Чтобы ответить на четвертый вопрос, напишите свои собственные тестовые случаи:

http://en.wikipedia.org/wiki/Unit_testing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...