当前位置:主页 > 网络与CDN > 人工智能 >

香港带宽_国内便宜的云主机有哪些_测评

简介

去年10月,我主持了一次网络研讨会,作为24小时导师魔术马拉松的一部分。会议的录音本应公开,但不幸的是,这不是由于技术问题。因此,本博客的目的是重现在网络研讨会期间发布的核心内容。

本次会议是我之前博客的后续内容,(如何)测试Groovy脚本?,前提是目前在Eclipse中离线测试Groovy脚本更加"groovier"和高效。

Groovy遇到了Spock

既然我们有能力在Eclipse中本地测试Groovy脚本,这不应该是它的终结。下一个目标应该是找到一种有效的方法来测试脚本。现在每个人都想运行敏捷,如果没有一个高效和自动化的方法,运行敏捷是不可能的。

这就是斯波克进来的地方。

不,不是那个斯波克!这是斯波克!

非常适合Groovy开发的测试框架支持测试驱动开发(TDD)方法易于合并到Eclipse中在生成路径中包含单个Spock库文件作为JUnit测试的可执行文件提供"groovy"结果

以大胆地测试之前没有人测试过的地方

下面是演示过程中的复制。在这个演示中,我使用Spock实现了基于TDD的方法来开发和测试Groovy脚本。

Groovy脚本的总体要求(或Spock中的规范)是从HTTP查询字符串中提取键值对。然后,云服务器好用吗,这些参数值应存储为消息属性。以下是该项目的具体要求脚本:-

消息属性由查询字符串中的单个参数填充消息属性由查询字符串中的多个参数填充当查询字符串中包含特殊字符时,云服务器好吗,将填充消息属性当查询字符串包含OData查询字符串选项时,将填充message属性

首先,下载返利,下载spock核心库并将其包含在构建路径中。

接下来,从创建新的Groovy类Ext开始ractqueryspocktest.groovy公司,首先,我将只实现第一个测试用例(在Spock中称为feature method)。

为了模拟测试条件,在CamelHttpQuery头中传递了一个参数键值对(mode=test),大数据分析网站,它通常存储来自发送方HTTP适配器的查询字符串。脚本执行后,检查message属性以验证它是否包含键值对。

测试中的脚本与上一个博客中的Groovy脚本(在CPI中创建的默认Groovy脚本)保持相同。

当我将Spock测试作为JUnit测试运行时(选择Spock测试类,右键单击>运行方式>JUnit测试)将显示以下错误-由于尚未实现任何相关逻辑,因此预计会出现此错误。

以TDD方式,我实现了最简单的逻辑,以获得成功的测试用例。下面的逻辑检索CamelHttpQuery头的内容,用=分隔符拆分键值对,并将其存储为消息属性。

当我重新运行Spock测试时,结果在JUnit控制台中是成功的。

结果在Spock中更为常规

现在,我包括了完整的Spock测试,其中包括测试用例对于所有的需求-完整的源代码可以在下面的附录部分找到。

一旦我重新运行Spock测试,JUnit控制台就会显示所有四个测试运行的结果。第一个测试仍然成功,但其余的测试仍有错误(如预期的那样)。Spock的另一个好特性是结果的显示方式。如下面的屏幕截图所示,云快卖,Spock显示了预期条件下每个对象的值,以及它与预期结果的差异。结果以简单易看的方式显示。

为了完成演示,我继续增强逻辑,以迭代的方式完成每个新的测试用例(同时确保以前的测试用例仍然成功)。

修改逻辑,用&分隔符分割查询字符串,以分离出键值对,最后,为了处理特殊字符,我定义并使用了闭包decodeQuery,对查询字符串中的任何特殊字符进行解码,所有的测试用例现在都成功了。

结论

随着Groovy成为CPI的支柱,确保Groovy脚本以一种有效的方式开发和测试变得至关重要。Spock提供了一个易于使用、优雅而强大的框架来实现这一点。如上面的例子所示,Groovy脚本可以以基于TDD的迭代方式开发,并且可以很容易地合并新的需求,同时确保它不会破坏任何现有的功能。

附录

Spock规范的源代码通知:-

猜你喜欢

微信公众号