当前位置:  开发笔记 > 编程语言 > 正文

从单元测试中触发UI控件事件

如何解决《从单元测试中触发UI控件事件》经验,为你挑选了1个好方法。

作为TDD的初学者,我正在尝试编写一个测试,假设属性已在PropertyGrid(C#,WinForms,.NET 3.5)上更改了值.

更改属性网格中对象的属性不会触发事件(公平,因为它是一个UI引发的事件,所以我可以看到为什么更改拥有的对象可能对它不可见).

我也遇到了在更改SelectedNode属性时在TreeView上获取AfterSelect时遇到的相同问题.

我可以使用我的单元测试可以调用的函数来模拟UI事件将触发的代码,但这会使我的代码混乱,除非我将其公开,否则我必须在同一个项目中编写所有测试,甚至是我正在测试的对象(再次,我认为这是杂乱的).这对我来说似乎很难看,并且会受到可维护性问题的困扰.

是否存在执行此类基于UI的单元测试的约定



1> Odd..:

要对代码进行单元测试,您需要模拟UI界面元素的对象.您可以使用许多工具来执行此操作,但我不能推荐其他工具.在Phil Haack的博客中,MoQ和Rhino Mocks之间有一个很好的比较,我觉得它很有用,可能对你有用.

如果您正在使用TDD,那么要考虑创建一个视图界面将有助于TDD过程.有一个设计模型(可能不止一个,但这是我使用的)称为模型视图展示器(现在分为被动视图和监督控制器).其中一个将使您的代码在未来更加可测试.

另外,请记住,测试UI本身不能通过单元测试来完成.另一个答案中已经建议的测试自动化工具将适用于此,但不适用于对代码进行单元测试.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有