对组件进行单元测试时,发生以下问题:
有许多与鼠标相关的事件处理程序。我看到有两种可能性来测试这些处理程序:
我知道单元测试通常仅限于类的接口(这也意味着在类内部更改时不必更改测试),但这种情况是否值得例外?
在单元测试组件时,您通常如何处理鼠标事件?
答案 0 :(得分:7)
就个人而言,我认为您需要进行体系结构更改以促进自动化用户界面测试。本文很好地阐述了原因:http://blog.objectmentor.com/articles/2010/01/04/ui-test-automation-tools-are-snake-oil
德尔福杂志曾经有一篇关于从代码自动测试用户界面的有趣文章(没有特定的gui测试工具)。花费的时间比我预期的要长一些,可能无法在线获取。如果我找到它,我会更新我的答案。
文章是Julian Bucknall(DevExpress)的“创建易于测试的用户界面”,并发表在“The Delphi Magazine”的第120期。不幸的是,该文章已不再在线。您必须购买The Delphi Magazine的全部产品系列:1 GB USB记忆棒,所有问题和所有代码都在The Delphi Magazine上发布。非常值得36英镑! (不,我没有收到佣金)。
答案 1 :(得分:2)
通常,您应该以可以测试它的方式编写代码,因此您可以测试mouseevent调用的方法,而无需模拟鼠标事件。
为了做到这一点,你需要一个良好的分离GUI和逻辑中间件。
你可以maby提供一些代码或更多关于你在应用程序中调用mousevents的功能的信息。
答案 2 :(得分:1)
我认为您正在寻找一些自动GUI测试。例如,您可以尝试使用Smart Bear中的Test Complete。
DUnit确实提供了一些基本的GUI测试工具(在GUITesting单元中),但我认为它可能不够全面,无法满足您的需求。