unit-testing - 一个单元如何测试基于过程或基于事件的代码部分

标签 unit-testing

我相信 this presentation以及我需要学习单元测试的网站上的其他评论。我也意识到这里有很多关于什么是单元测试的问题。每次我去考虑应该如何在我目前正在处理的应用程序中完成它时,我都会困惑地走开。它是一个 xulrunner 应用程序,很多逻辑都是基于事件的——当用户点击这里时,就会发生这个 Action 。

通常我看到的测试示例是测试类——它们实例化一个对象,给它模拟数据,然后检查对象的属性。这对我来说很有意义——但是非面向对象的部分呢?

This guy mentioned在大多数任何测试框架中,基于 GUI 的单元测试都很困难,也许这就是问题所在。上面链接的演示文稿提到,每个测试一次只能接触一个类,一种方法。这似乎排除了我正在尝试做的事情。

那么问题来了——一个单元如何测试过程或基于事件的代码?提供指向良好文档的链接,或自行解释。

附带说明一下,我还面临一个挑战,即没有找到用于测试 xulrunner 应用程序的测试框架 - 似乎这些工具还没有开发出来。我想这比我理解概念、编写可测试代码、应用单元测试更外围。

最佳答案

单元测试的想法是在每次测试中测试一小段代码。在基于事件的系统中,您可以进行的一种单元测试形式是测试您的事件处理程序如何响应各种事件。所以你的单元测试可能会将你程序的某个方面设置为特定的状态,然后直接调用事件监听器方法,最后测试你程序的后续状态。

如果您计划对基于事件的系统进行单元测试,那么如果您使用依赖注入(inject)模式并且理想情况下会全程使用控制反转(参见 http://martinfowler.com/articles/injection.htmlhttp://msdn.microsoft.com/en-us/library/aa973811.aspx有关这些模式的详细信息)

(感谢 pc1oad1etter 指出我弄乱了链接)

关于unit-testing - 一个单元如何测试基于过程或基于事件的代码部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73078/

相关文章:

android - 我如何在android中为挂起功能和状态流编写单元测试

c - C 中单元测试的自动生成器

unit-testing - 是否可以从测试中访问私有(private)结构字段?

angularjs - 如何为依赖于工厂服务的 Controller 编写单元测试,而工厂服务本身又依赖于 $http 服务

android - 在测试类中模拟和监视时获取空指针异常

unit-testing - 在 Visual Studio 2015 中加密 SQL 单元测试的 ConnectionString

android - 由于主项目的复杂库项目依赖性,Jenkins-Server 上的自动化 Android UI 测试失败

.net - Rhino 模拟错误 : Previous method 'IEnumerator.MoveNext();' requires a return value or an exception to throw

c# - 可以在没有三角剖分的情况下伪造('Til You Make It)TDD 模式吗?

ios - 如何测试 RxSwift 变量和 RxCocoa Observable 之间的 UI 绑定(bind)?