热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

easyb,我对你终于失去了耐心

很多年前,我还不知道BDD为何物。当我做测试的时候,我就想能不能有一个工具,能够边写测试边写文档,测试完成了,文档也完成了。甚至想做一些annotation,按照某个规范编写测试,就能根

很多年前,我还不知道BDD为何物。

当我做测试的时候,我就想能不能有一个工具,能够边写测试边写文档,测试完成了,文档也完成了。

甚至想做一些annotation,按照某个规范编写测试,就能根据这些annotation产生出文档。

一直没有时间做,就把这事情放下了,直到遇见的jsspec

我开始使用jsspec编写BDD测试。可是不过瘾。因为js大量的是UI交互,把这些交互过程也写成jsspec太痛苦了。

 

最近终于有机会开始使用easyb测试我那复杂的工作流项目。

easyb的一切看上去是那么美好:强大的动态语言groovy,清晰的BDD概念,简洁的easyb DSL...

我花了整整一周的时间使用它,一直到今天下午写完了我的第10个scenario。但是,我终于------我厌烦了!

不能说这是easyb的错,只是Java/Groovy相关很多问题集中到了一起。

下面列举它们的种种不爽之处:

 

  1. easyb没有eclipse插件,我得用ant来做开发。再也看不到junit那美丽的绿色条了
  2. 乱码,还是乱码。我折腾了一天,。只找到一个解决办法:不使用ant,直接用easyb的命令行。算了,开发用ant编译,到时候要生成文档再用Java命令行吧。
  3. 编辑器太糟糕了,本来groovy还能有点代码提示。如今dsl了,代码提示,这个就不用想了。这个不怪easyb的事,怪就怪groovy没有一个优秀的编辑器。groovy eclipse plugin也就勉强可用
  4. 最头疼的事情来了:这也来源于groovy的问题,只是由于easyb对groovy又做了dsl,造成:出错的行号不见了。你测试代码的时候总会出错吧,总要找到第几行出错吧,但是,easy了以后,很多的错误就像这样:test.executable.Script1$_run_closure3_closure10.doCall(Script1.groovy:130)。并且,在story.xml中的错误信息还不全。
  5. BDD产生的测试文档真的好用吗?我看了我写的10个场景,仍然不知所云。很多地方需要嵌入图片才可能描述清楚。可是,easyb的dsl还没有强大到可以嵌入图片啊

种种问题组合在一起,开发效率并没有因为动态语言而增加,反而3和4的原因开发效率降低了;产生的文档也没有想象中那么美。既然没有什么好处,为什么不回去使用我的junit呢

 

别了easyb,也许过几年等你成熟了我会重新投入你的怀抱。现在还是回去看我的绿色条吧。

 

下面再把这几天的成果留一点足迹吧。

使用命令行解决乱码问题,注意类路径要保护easyb的那三个jar包:

java -Dfile.encoding=utf-8 org.easyb.BehaviorRunner builder.story-txtstory target.txt

 

一个能运行的ant脚本:

 

一个成功的scenario,注意要以.story或者.Story.groovy结尾



推荐阅读
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
author-avatar
手机用户2602934963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有