黄瓜与JUnit有何不同?

RK *_*. N 15 junit cucumber

任何人都可以解释我与CucumberJunit之间的区别

根据我的理解,它们都用于测试Java代码,虽然我不确定它们的区别?

它们只是同一测试套件的不同实现还是旨在测试不同的东西?

dka*_*zel 24

黄瓜和JUnit是不同的,并解决不同的事情.

黄瓜是一种行为驱动设计(BDD)框架,它采用以人类可读语言(如英语)编写的"故事"或场景,并将这些人类可读文本转换为软件测试.

这是一个例子黄瓜故事:

用简单的英语进行黄瓜试验示例

然后,黄瓜将知道如何将此文本转换为软件测试,以确保软件按照所述方式工作.输出将告诉您故事是否实际上是软件的功能,如果不是,则有什么不同:

 测试失败

这里是修复代码以使黄瓜测试通过的地方: 通过考试

这就是所谓的"可执行规范",它是记录软件支持的所有功能的好方法.这与普通文档不同,因为没有相应的测试,阅读文档的人不知道文档是否是最新的.

可执行规范的其他好处:

  • 非程序员可以阅读和理解测试
  • 非程序员可以编写测试,因为它们使用简单的英语.

BDD结果和可执行规范是非常高的水平.它们涵盖了整体功能,可能还有一些边缘情况作为示例,但不测试每个可能的条件或每个代码路径.此外,BDD测试是"集成测试",因为它们测试所有代码模块如何协同工作,但它们不会彻底测试所有内容.

这就是JUnit的用武之地.

JUnit是一个较低级别的"单元测试"工具,允许开发人员在其代码中测试每个可能的代码路径.您的代码(或类,甚至方法)的每个模块都是独立测试的.它比BDD框架低得多.使用与Cucumber示例相同的计算器故事,JUnit测试将测试许多不同的计算示例和无效输入,以确保程序正确响应并正确计算值.

希望有所帮助

  • +1,"BDD测试也是"集成测试",因为它们测试所有代码模块如何协同工作,但它们不会彻底测试所有内容",非常有用的解释 (3认同)