Существуют ли инструменты, которые предварительно пишут UnitTests для ваших классов .NET? - PullRequest
1 голос
/ 02 февраля 2011

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

Существует ли такой инструмент?

Ответы [ 4 ]

3 голосов
/ 02 февраля 2011
1 голос
/ 04 февраля 2011

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

Что вы обнаружите, так это то, что если вы используете современную IDE со статически типизированными языками (Eclipse, IntelliJ для Java,или Visual Studio + ReSharper для .NET) существуют рефакторинги, такие как «Присвоить объект локальной переменной», которые после фиксации в памяти все равно пишут 75% кода.

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

1 голос
/ 02 февраля 2011

Я вижу мотивацию вашего босса, но это просто чепуха, не так ли? Тесты являются формальной спецификацией, как компьютер может написать это для вас?

0 голосов
/ 02 февраля 2011

Ваш босс, возможно, захочет рассмотреть SpecFlow . Этот инструмент позволяет определить приемочные тесты на естественном языке (более или менее), а затем создает модульные тесты *.

Разработчики, конечно же, должны написать некоторый код, чтобы точно определить предметно-ориентированный язык.

* - Фактически приемочные испытания с использованием существующих систем модульных испытаний, технически правильные.

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