作者:手机用户2602934963 | 来源:互联网 | 2023-10-13 05:59
很多年前,我还不知道BDD为何物。当我做测试的时候,我就想能不能有一个工具,能够边写测试边写文档,测试完成了,文档也完成了。甚至想做一些annotation,按照某个规范编写测试,就能根
很多年前,我还不知道BDD为何物。
当我做测试的时候,我就想能不能有一个工具,能够边写测试边写文档,测试完成了,文档也完成了。
甚至想做一些annotation,按照某个规范编写测试,就能根据这些annotation产生出文档。
一直没有时间做,就把这事情放下了,直到遇见的jsspec
我开始使用jsspec编写BDD测试。可是不过瘾。因为js大量的是UI交互,把这些交互过程也写成jsspec太痛苦了。
最近终于有机会开始使用easyb测试我那复杂的工作流项目。
easyb的一切看上去是那么美好:强大的动态语言groovy,清晰的BDD概念,简洁的easyb DSL...
我花了整整一周的时间使用它,一直到今天下午写完了我的第10个scenario。但是,我终于------我厌烦了!
不能说这是easyb的错,只是Java/Groovy相关很多问题集中到了一起。
下面列举它们的种种不爽之处:
- easyb没有eclipse插件,我得用ant来做开发。再也看不到junit那美丽的绿色条了
- 乱码,还是乱码。我折腾了一天,。只找到一个解决办法:不使用ant,直接用easyb的命令行。算了,开发用ant编译,到时候要生成文档再用Java命令行吧。
- 编辑器太糟糕了,本来groovy还能有点代码提示。如今dsl了,代码提示,这个就不用想了。这个不怪easyb的事,怪就怪groovy没有一个优秀的编辑器。groovy eclipse plugin也就勉强可用
- 最头疼的事情来了:这也来源于groovy的问题,只是由于easyb对groovy又做了dsl,造成:出错的行号不见了。你测试代码的时候总会出错吧,总要找到第几行出错吧,但是,easy了以后,很多的错误就像这样:test.executable.Script1$_run_closure3_closure10.doCall(Script1.groovy:130)。并且,在story.xml中的错误信息还不全。
- 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结尾