我正在考虑为我们的WPF应用程序编写冒烟测试。我面临的问题是:我们应该使用UI自动化(或其他一些创建UI脚本的技术),还是直接使用ViewModels(在创建所有视图模型之后,首先使单元测试更容易) )。
答案 0 :(得分:2)
如果你的ViewModel与你的视图正确分开,你没有理由不能为你的ViewModel编写单元测试。
冒烟测试是一项实际启动应用程序并检查其是否有效的测试,并且(对于具有UI的应用程序)UI自动化是实现这一目标的方法。
答案 1 :(得分:1)
我们曾经直接使用ViewModels编写集成测试(冒烟测试,如果你愿意)。它工作正常,但我们确实必须处理一些有趣的线程问题:例如,如果您的ViewModel导致显示消息框,您的测试如何关闭消息框?我们必须确保我们的应用程序在一个线程上运行,而我们的测试在另一个线程上运行。
我们现在已经转移到UIAutomation,因为你的测试和应用程序在两个独立的进程中显式运行,所以这些问题就会消失。涉及到一些学习曲线,但UIAutomation并不像它第一次出现那样可怕:我写了tutorial可能有助于你开始 - 按照链接,你也会找到一个一些辅助方法可以稍微改变UI Automation API。