YUI的测试3.0.0的新功能
2009年12月10日上午9:07时由Nicholas C. Zakas |在发展 | 评论关尼古拉斯C. Zakas于2006年加入雅虎。 他是作者专业Ajax和Web开发人员的专业的JavaScript 。 他的测试驱动开发介绍尼古拉几个YUI的剧院之一。
一个新版本的YUI的测试伴随着YUI 3.0.0发布。 YUI 3.0.0的测试是不仅仅是一个YUI的测试端口兼容2.x的版本,但是,引入了几个新功能。 这些来作为开发的要求和我那些已经在使用该工具的谈话。
促进事件仿真
事件仿真最初是YUI的测试中通过2.x版本YAHOO.util.UserAction对象。 事实证明,开发商真的很喜欢此功能,并发现它使用的测试环境之外。 因此,事件仿真工具已晋升为一个一流的成员YUI 3.0.0事件公用事业 ,在一个单一的方法访问, Y.Event.simulate() 您可以通过包括事件仿真组件"event-simulate"到YUI().use()方法:
YUI()。使用(“事件模拟”功能(Y){ Y.Event.simulate(#“节点”,“点击”, {clientX:25,clientY:30}); });
Mock对象
锐锐3.0.0测试引入了一个新的功能:创建模拟对象。 Mock对象是有用的隔离依赖关系从你的单元测试。 在复杂的软件系统中,经常有任何依赖于另一个块的数量。 问题就成为孤立系统的哪一部分没有出问题的时候。
例如,假设您有称为方法logToServer()是创建XMLHttpRequest XMLHttpRequest对象和发送邮件服务器。 如果您的测试,包括在实际测试的功能,企图XHR对象,你有两个主要的依赖关系:XHR对象本身和服务器。 如果这两个依赖要么失败,那么你的测试失败,即使它不是你的过错的代码。 通过使用模拟XHR对象,你可以在隔离的测试代码,并保证它的工作。 例如:
/ /创建一个新的模拟对象 VAR mockXhr = Y莫克(); / /我期望与给定的参数调用open()方法 Y.Mock.expect(mockXhr,{ 方法:“开放”, 参数:[“?/ log.php味精=您好”“GET”,真正的] }); / /我期望的send()方法来给定的参数调用 Y.Mock.expect(mockXhr,{ 方法:“发送”, 参数:[空] }); / /现在调用函数 logToServer(“您好”,mockXhr); / /验证的期望得到满足 Y.Mock.verify(mockXhr);
这个例子创建了一个模拟的XHR对象定期XHR对象。 一旦所有的操作已经完成,代码验证,预期的方法,被称为。 YUI测试模拟对象的API是故意最少要尽可能明确和有用。 了解YUI的测试模拟对象的详细信息, 请参阅该文档。
友好测试名称
YUI的测试最初用于测试方法的xUnit风格,使每个测试方法的名称必须test测试开始。 YUI 3.0.0测试更进一步,允许你指定额外的xUnit风格的名字友好测试名称。 友好的名字比什么都重要的句子,唯一的限制是,名称中包含至少一个空格和“应当”一词。 例如:
VAR的TestCase =新Y.Test.Case({ 名称:“TestCase的名称”, / /风格的xUnit测试的名称 testSomeFunction:函数(){ }, / /友好的测试名称 “事情应该发生在这里”:函数(){ ... ... } });
友好测试名称允许您描述在一个更可读的的方式进行测试的功能。 写作词组,如“方法应该返回4时,通过2和2”,和,显示在测试结果,使得它更易于理解的测试结果,还有什么必须解决的问题。
下一步是什么?
YUI测试持续发展和增长是从开发商收到反馈。 目前在工程有几个特点:
- 更多的测试结果的格式,如JUnit XML和TAP。
- 代码覆盖率的收集和报告。
- 自动化测试使用Selenium。
如果您有意见或反馈,我们很乐意听到你在YUILibrary.com ,您可以在文件功能请求或开始一个讨论论坛 。 有了您的帮助,YUI的测试,可以继续发展,以满足不断变化的Web开发社区的需求。
分享和扩展: 书签del.icio.us | Digg它! | 书签交易!
还没有评论
抱歉,评论形式此时关闭。


