我更喜欢使用MVVM。这将大部分的代码移至ViewModel。可以使用Visual Studio中的测试工具(如MS Test或NUnit)来测试ViewModel。对于仍然存在的UI测试(主要是自定义控件),您可以使用UI自动化测试套件,例如codeplex上的White。
TestComplete 是一款用于自动化 UI 测试的优秀软件 - 适用于 WPF。 http://smartbear.com/products/qa-tools/automated-testing/ 不过,它需要花费至少 $999。