如何对应用程序和UI代码进行单元测试?


10

我喜欢编写单元测试,并同意它们是测试代码,防止回归等的绝佳方法。但是,我发现自己无法编写它们,因为我日复一日地工作的绝大多数代码都是应用程序向用户显示UI的代码。是否有对应用程序代码进行单元测试的好方法?这里的最佳做法是什么?

我不是在寻找诸如框架之类的具体答案。而是,总的来说,您如何解决这个问题?


什么是“显示UI的应用程序代码”?您是在谈论MVC中的C吗?
Martin Wickman 2010年

我说的是任何图形界面-JavaScript / HTML,带有MFC的C ++,WinForms,WPF等...
Justin Ethier 2010年

MVVM易于进行单元测试。请参阅MVVM 命令模式。
阿米尔·雷扎伊

@amir-您有参考文献或其他信息吗?
贾斯汀·埃斯蒂尔2010年

Answers:


8

为了测试实际的用户界面,Selenium运行良好。

如果要进行实际的单元测试,则您的策略是将尽可能多的逻辑从实际用户界面中推回,通常是在ViewModel对象中。然后,您可以针对ViewModel对象编写单元测试。

换句话说,将尽可能少的逻辑放在实际的UI中,以便可以在其他地方进行单元测试。


对于SoC来说,这是一个很好的设计,UI中不应包含域/业务逻辑。很多客户端逻辑-交互性/验证都可以使用JavaScript在UI中进行,而JavaScript可进行单元测试。
StuperUser 2011年

1

我曾与单元MSTest的测试我的应用程序,并测试我的javascript成功QUnit并拿起与使用单个MSTest的单元测试这些测试的结果华廷(我建议,它有能力记录测试过,但发现WatiN更好地实现了清晰的自动化)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.