网站首页 > 单元作文> 文章内容

单元测试之spock实践

※发布时间:2019-5-29 7:26:16   ※发布作者:habao   ※出自何处: 

  在软件开发里,单元测试似乎是一个没有那么重要但始终绕不过去的话题,作为码农如果没有写过单元测试的代码就要想想自己是不是一个假的码农。

  说到单元测试不能不提到TDD测试驱动开发,以及对TDD扩展的BDD行为驱动开发。大多数采用某种敏捷方法的团队最终都会遵循BDD的许多原则。在编写单元测试的时候,尽量使用BDD风格为测试命名。

  BDD风格强调使用完整的、描述性的、便于业务用户理解的名称或术语,避免使用技术术语。BDD希望类、方法和变量的名称尽可能地反映日常用语。本篇文章的主人公spock就该出场了。

  Spock集成了Junit, JMock和RSpec等测试框架的优势,使开发者能够使用BDD DSL语言进行测试代码的编写.它完全兼容了大名鼎鼎的Junit,同时不需要依赖任何的Mock框架。

  Groovy是Java平台上设计的面向对象编程语言。这门动态语言拥有类似Python、Ruby和Smalltalk中的一些特性,可以作为Java平台的脚本语言使用,Groovy代码动态地编译成运行于Java虚拟机(JVM)上的Java字节码,并与其他Java代码和库进行互操作。由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库。Groovy的语法与Java非常相似,大多数Java代码也匹配Groovy的语法规则,尽管可能语义不同。

  由此可见,对于java码农来说学习使用groovy语言应该不是什么事儿。所以接下来我们开始可以动手了。

  接下来让我们来见识下Spock的DataDriven Testing数据驱动测试,使用它可以方便的使用不同的数据对方法进行测试。相比于Junit写出来的单元测试,有没有觉得可性,可读性提高了不少。

  通常来说,一个单元测试主要包括:准备测试数据,执行待测试方法,判断执行结果三个步骤。Spock中通过setup, expect, when, then, where等标签实现了这些步骤。下面我们来写一个常见的对后端rest接口进行测试的例子。

  我们可以看到,Spock中对象的mock是如此的容易,在一个测试用例中清晰的体现了单元测试的几个主要步骤,能明显的提高编写单元测试的效率。

  笔者通过在实际项目中使用Spock的经验,感受到了它的魅力,高质量高覆盖率的单元测试是代码重构(持续改进代码质量),敏捷开发模式所必不可少的前提,希望更多的企业与码农加入到Spock的队伍里来。带金字旁的女孩名字

   文章来源于博贝棋牌850游戏

相关阅读
  • 没有资料