2010-01-26 5 views
0

Я никогда не использовал TDD и модульное тестирование «правильно», но хотел бы изучить некоторые методы. Не могли бы вы помочь мне с идеей написания методов тестирования для этого не-проверяемого (на мой взгляд) случая.Тестировать или не тестировать - функциональность клавишной клавиатуры

Класс, который я хочу проверить, еще не написан (я помню, мне нужно сначала написать тест), но у него будет метод для сочетания сочетаний клавиш быстрого доступа Windows (передается как параметр) и повысит когда эта комбинация клавиш нажата. Итак, как мне пройти тестирование такого случая? Нужно ли сначала писать программу симуляции нажатия клавиш? Нужен ли мне единичный тест для симуляции нажатием клавиши или будет ли тест ярлыка «отменить» необходимость в нем? Является ли это единичным тестом или вообще называется другим?

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

+0

Это не вопрос, а скорее его задача. В Интернете есть много обучающих модулей для тестирования модулей, прежде чем просить СО написать ему одно. –

+0

@Frank Schwieterman: Я мог бы согласиться, да. Не могли бы вы указать на учебник, который охватывает этот случай, пожалуйста? –

+0

Будете ли вы делать это в Win32? Я не знаю, что клавиатура может быть выполнена с помощью компонента C#/CLR. –

ответ

0

Я обычно согласен с cmw.

Общий подход к модульному тестированию логика коды вы написали, а не сантехнику вы зависите от ОС Windows (или любого другой за пределами «сервис»)

Тестирования фактической функциональности клавиатуры нажмите, IMO, было бы «интеграционным» испытанием. Например, что-то сделано как часть тестового скрипта, который будет выполняться QA.

Ключ к модулю, тестирующий этот сценарий, отделяет зависимость от нажатия клавиши нажатия на логику в их методе, который реагирует на нажатие клавиши. Именно здесь модульные тесты становятся очень ценными. Они выделяют области вашего кода, которые могут быть переупорядочены для привязки к SRP.

+1

Так что, возможно, объясните, как протестировать тестирование, и как он будет делать тест интеграции? Поскольку тесты интеграции все еще являются частью процесса TDD ... – Sekhat

0

Я бы предположил, что вы сначала начнете с написания теста, который непосредственно называется методом Hook, и убедитесь, что a) какое-то событие поднято или b) какое-то значение было установлено в тестируемом классе.

Твердые вещи, такие как симулятор событий клавиатуры, придут позже (если это потребуется). Это было бы первым шагом и повлияло бы на то, как вы создаете свой класс hook. Он надеялся бы повлиять на него таким образом, чтобы ваш класс крюка был достаточно расширяемым, чтобы работать с короткими сокращениями Windows и с вашими модульными тестами.

Смежные вопросы