Unit tests & GUI
От: Aviator  
Дата: 11.10.07 03:50
Оценка:
Решился на днях попробовать задействовать юнит тесты в приложении на винформах с тестированием логики представления данных. Всегда подозревал что затея это сомнительная, но всё-таки переборол внутренний протест и заставил сделать это. Задействовал для ентого дела ныне модный супер паттерн MVP . Сухой остаток на текущий момент — вместо одного класса формы с обработчиками в стиле

   void SomeEventHandler(object sender, EventArgs e) 
   {
         int val = _serverApi.GetCurrentSignalLevel();
         _txtSignalValue.Text = val.ToString();
   }


Получаем

   class MyForm : IView 
   {
     void SomeEventHandler(object sender, EventArgs e) 
     {
          FireSignalRefresh();
     }

     void SetSignalValue(int val)  
     {
         _txtSignalValue.Text = val.ToString();
     }
   }

   class MyPresenter 
   {
     void SignalRefresh() {
        _view.SetSignalValue(_serverApi.GetCurrentSignalLevel());
     } 
   }


По моему достаточный геморрой и много лишнего кода, делающего общую логику туманной и менее прозрачной. Если теперь предположить, что таких обработчиков и методов в интерфейсе IView будет дофига, то количество лишней работы становится колосальным. Для тестировавания делаем мок на IView и дёргаем методы презентера. однако при сложной отображалке этот процесс становится довольно проблематичным... Если у кого есть хорошие ссылки по ентому процессу накидайте пожалуйста. А то кроме довольно малоинформативных статеек с codeproject под руку не попадается ничего. Везде приводят простенький пример, хотя даже на простом примере видно какой это геморрой и сколько лишнего времени уходит на написание презентеров, реализаций интерфейсов IView, пересылки сообщений в презентер...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.