Я предпочитаю использовать MVVM.
Это перемещает большую часть кода в ViewModel.ViewModel можно протестировать с помощью инструментов тестирования в Visual Studio, таких как MS Test или NUnit.
Для оставшихся тестов пользовательского интерфейса (в основном пользовательских элементов управления) можно использовать набор тестов автоматизации пользовательского интерфейса, например White onCodePlex .