Ед. тесты имеют разные требования, чем производственный код. Например, модульные тесты могут быть не такими эффективными, как производственный код.
Возможно, иногда имеет смысл писать ваши модульные тесты на языке, который лучше подходит для написания модульных тестов? Конкретный пример, который я имею в виду, заключается в написании приложения на С#, но с помощью IronRuby или IronPython для написания тестов.
Как я вижу, использование IronPython и IronRuby имеет несколько преимуществ перед кодом С# в качестве языка тестирования:
- Отказывание может быть проще в динамически типизированных языках
- IronPython имеет меньше подробных аннотаций типа, которые не нужны в модульных тестах
- Экспериментальный вызов тестов без перекомпиляции путем ввода команд в интерпретаторе
Каковы компромиссы в использовании двух разных языков для тестов и производственного кода?