Модульное тестирование View достаточно просто с использованием утверждений тестирования (www.approvaltests.com или nuget). здесь есть видео: http://www.youtube.com/watch?v=hKeKBjoSfJ8
Однако вам также кажется, что вы беспокоитесь о том, чтобы сделать функцию по умолчанию или общедоступной, чтобы иметь возможность проверить функциональность.
Обычно их называют швами; способы попасть в ваш код для тестирования.
и они хороши Иногда люди путают частную / публичную с безопасностью и боятся сделать приватную функцию общедоступной, но при этом будет вызвано и рефлексия, так что это не совсем безопасно. В других случаях люди беспокоятся об интерфейсе API для класса. Но это имеет значение, только если у вас есть общедоступный API, и если у вас есть приложение winform, оно, вероятно, предназначено для верхнего уровня (другие потребители его не называют).
Вы - программист, и поэтому можете разрабатывать свой код так, чтобы его было легко тестировать. Обычно это означает немного больше, чем изменение нескольких открытых методов и создание нескольких методов connivence, которые позволяют передавать зависимости.
Например:
buttonclick += (o,e)=> {/*somecode*/};
очень сложно проверить.
private void button1_Click(object sender, EventArgs e) {/*somecode*/}
все еще трудно проверить
public void button1_Click(object sender, EventArgs e) {/*somecode*/}
легче проверить
private void button1_Click(object sender, EventArgs e) { DoSave();}
public void DoSave(){/*somecode*/}
Действительно легко проверить!
Это удваивается, если вам нужна информация с мероприятия. то есть.
public void ZoomInto(int x, int y)
Гораздо проще проверить, что соответствующее событие щелчка мыши, и вызов passthrough все еще может быть одной игнорируемой строкой.