Один из моих проектов, который я разрабатываю, - это крючок клавиатуры, который захватывает некоторые из функциональных кнопок с более высоким номером (f13-f20). Планшет, на котором он будет работать, имеет кнопки на нем, которые отображаются на эти более функциональные кнопки. Таким образом, любой, кто я создаю класс, который имеет в качестве своего конструктора, вводит ключ (из System.Windows.Forms.Keys) и AbstractTask. Поскольку крюк использования будет выполнять различные задачи, я решил, что это будет неплохой способ сделать. Одна из задач - это KeyboardTask. супер простой класс (я надеюсь, по крайней мере)Единичный тест для виртуальной клавиатуры
public class KeyboardTask : AbstractTask
{
private KeyboardTask()
{ }
public KeyboardTask (KeyboardCommand key)
{
Options = "{" + key + "}";
}
public override void PerformTask()
{
Globals.WriteLog("KeyboardTask:PerformTask()+");
try
{
System.Windows.Forms.SendKeys.Send(Options);
}
catch (System.Exception ex)
{
Globals.WriteExceptionLog(ex);
}
Globals.WriteLog("KeyboardTask:PerformTask()-");
}
}
public enum KeyboardCommand
{
BACKSPACE,//{BACKSPACE}, {BS}, or {BKSP}
BREAK,//{BREAK}
CAPSLOCK,//{CAPSLOCK}
DELETE,//{DELETE} or {DEL}
DOWN, //{DOWN}
END,//{END}
ENTER,//{ENTER}or ~
ESC,//{ESC}
//etc
}
Так как не блок-тест я составил свою программу с этим к нему добавляется
ksel1 = new KeyboardSystemEventListener((Keys.F13), new KeyboardTask(KeyboardCommand.F1));//F1
ksel6 = new KeyboardSystemEventListener((Keys.F18), new ECTask(EmbeddedControllerCommand.DecreaseBackLight));//RB
(есть ОГРОМНАЯ ошибка делает это таким образом, но это уже решено, я просто должен его реализовать). Я поместил программу на свой планшет, и у меня был IE, нажал кнопку F13, и он открыл «Справка IE» (YEAH!). Я нажал F18, и подсветка уменьшилась. (нет большого сюрприза)
так что я подумал .. должен быть лучший способ сделать (что Я должен был сказать, почему я не написал свой единичный тест в первую очередь) Итак, я начал писать свой модульный тест. Проблема в том, что у меня нет ключа F13 .. нормально, не огромная сделка, я просто изменю его сказать мою кнопку «Домой» на моей клавиатуре, но затем я попытался проверить F1 и понял, что понятия не имею, как это сделать с помощью теста Unit. То, что я хотел бы видеть, - это что-то вроде этого (выведите меня из уравнения)
[Test]
public void TestKeyboardTask()
{
KeyboardTask kkt = new KeyboardTask(KeyboardCommand.F1);
kkt.PerformTask();
Assert.IsTrue(/*F1 key was pressed*/false);
}
любые идеи? Я использую NUnit 2.6.2 и Visual studio 2012 pro. Я предпочитаю использовать NUnit как тестовый набор VS не кажется, как рафинированное (althoough будет в миллиард раз больше conveniant, если он работал)
HA .. выставлен. Супер простой тоже. В основном я сделал форму с текстовым полем в ней. Добавлен прослушиватель keydown. В KeyDown я устанавливаю поле под названием PressedKey в e.KeyData, а затем устанавливаю результат диалога в OK. Я покажу код, когда смогу. –