2009-05-04 3 views
4

Я пытаюсь написать несколько сложных приемочных тестов для моего кода на C#. Я замечаю, что когда я пишу свои тесты, я делаю много явного каста, чтобы удовлетворить компилятор C#. Мне нравится тип безопасности, который я получаю в своем производственном коде со статически типизированным языком, например C#, но для моих тестов я был бы рад использовать динамически типизированный язык (например, IronPython или IronRuby), чтобы избежать всех явных кастингов. Если мой тест вызывает метод, который не существует на объекте, было бы нормально, если бы код завершился с ошибкой во время выполнения (это просто неудачный тест). В настоящее время я использую MS Test в качестве платформы тестирования модулей, и было бы удобно, если бы я мог продолжать использовать его. Какой динамический (на основе DLR) язык я могу использовать, который будет интегрироваться с MS Test? Не стесняйтесь предлагать различные рамки тестирования, если вы думаете, что это поможет.Какой динамический язык я могу использовать для модульных тестов .NET?

ответ

2

Я рекомендую IronPython - среди его преимуществ является прекрасной книге «IronPython в действии ", которая проведет вас по всем важным аспектам, включая тестирование.

+0

После некоторого дальнейшего изучения я вижу, что класс ScriptEngine из DLR можно использовать для вызова скриптов IronRuby или IronPython и передачи им объектов. Я думаю, что лучший способ в краткосрочной перспективе - написать методы тестирования заглушки (украшенные атрибутом [TestMethod]) и вызвать другой динамический скрипт для каждого из них. Я загрузил образец кода из книги IronPython, в котором показано, как это сделать. Когда C# 4.0 выходит, я могу использовать ключевое слово «dynamic», и мне вообще не понадобятся внешние скрипты. –

2

Я предпочитаю C# для модульного тестирования ... Если вы ищете динамический язык, вы можете попробовать железо-питон для этого ....

2

Для IronRuby и Rspec вы можете проверить это сообщение:

http://msdn.microsoft.com/en-us/magazine/dd453038.aspx

И http://msdn.microsoft.com/sv-se/magazine/dd434651(en-us).aspx для начала работы с IronRuby .Net interop.

Тогда всегда FitNesse:

http://www.fitnesse.org/

FitNesse .net 1.1 и 2.0 двоичные файлы можно найти здесь: http://fitnesse.org/FitNesse.DotNet

+0

Спасибо за ссылки. Я все еще ищу динамический язык, который я могу интегрировать в MS Test (что означает, что он должен поддерживать атрибуты .NET для типов и методов), но я буду рассматривать RSpec, если я не смогу найти что-либо, что работает. –