此文章由机器翻译。

编辑寄语

将异步引入测试

Michael Desmond

Michael DesmondMSDN 杂志在这一问题的铅条专注于一个共同的主题:管理单元测试异步代码项目的任务。

Stephen 佳利律师事务所的写过大量有关异步发展在过去的几年在 MSDN 杂志和他篇"单元测试异步代码"的专题文章探讨了必须根据调整单元测试,以证明 async 项目。他看着一些当前的单元测试框架 — — MSTest、 NUnit 和 xUnit 等 — — 并提供战略,以确保获得最佳结果。斯文大采取后续行动的第二次的专题文章内这一问题,"单元测试异步代码:三个解决方案更好的试验"。他提供了改进的设计,测试的异步代码与消除是缓慢和脆弱的单元测试的目标的三种解法。

当然,异步编程是在 MSDN 杂志在这里持续关注的话题。回来在 2011 年 10 月的问题,Microsoft 专家 Eric Lippert、 麦斯 Torgersen 和 Stephen Toub 写了三级跳预览新的异步的异步主题特征和等待关键字在 Visual Studio 2012 (msdn.microsoft.com/magazine/hh463583)。自那时以来,我们已经发布了十几个专题文章侧重于异步开发。其中之一 — — 佳利律师事务所的 2013 年 3 月第条,"最佳做法在异步编程"— — 在过去的两年中是最多人阅读的文章 (msdn.microsoft.com/magazine/jj991977)。

重点是,异步是热门的话题 — — 和很好的理由。作为大这个月,在他的文章中写道"是否对于基于 CPU 的并行或 IO 基于并发,开发商正在采用异步来帮助提供最重要的资源,并最终做更多与少。响应更快的客户端应用程序和可扩展性更强的服务器应用程序都是触手可及。"

异步发展的好处是很明显 — — 尤其是在越来越以云计算为导向的世界 — — 但异步编程对于开发人员来说,是新的实践的挑战。如克利里在一次采访中说:"很多异步教程说明如何使用异步/等待,但他们不准备异步的病毒式特性的开发人员。所以当他们开始写单个异步方法,这种等待异步/东西保持增长通过他们的代码,这些警告去和他们找资料来核实,这是不正确的。"

这就是为什么这个月的 MSDN 杂志的问题导致了与两篇文章侧重于单元测试异步代码。测试是那些可以得到推到一边当时间表得到严格的事情之一。然而,一个严谨、 纪律严明的测试制度是实现一致的代码质量的关键。这两个特点本月帮助开发人员确保其异步发展发生在有条不紊的和受支持的环境中。

"大多数单元测试异步代码所面临的挑战是单元测试同步代码相同。代码是容易测试,当它设计好的"克利里说。"对于异步代码,功能更强大的方法可以帮助 — — 换句话说,返回结果而不是设置值作为副作用。"

大说对重点测试工作,重要的是可以最终由测试从自定义代码正在调用的库代码的开发人员。"你不需要写一个测试,确保 Microsoft Task.Run 真的作品。相信我,它的工作原理。您的测试会更简单和更清洁的如果你设法测试只是您自己的代码,"大说。

是你 dev 店编写异步代码和你如何有适合您的测试,来容纳它吗?发邮件给我在 mmeditor@microsoft.com


Michael Desmond 是 MSDN 杂志总编辑。