Ale*_*x L 2 java junit selenium cucumber
我想问一下Cucumber和JUnit之间的实际区别是什么。我根本没有和Cucumber一起工作过;找到了一些文档,但是我非常感谢与这两者一起工作的人员提供的一些反馈(对lvl概述有兴趣)。
分解一下-我感兴趣的(我将使用Selenium而不是Protractor):
我需要完成的一些事情
除此以外的任何其他东西都值得欢迎。非常感谢您对此的回答,谢谢!
JUnit和Cucumber针对不同的目标。它们彼此互补而不是相互替代。
黄瓜和朱尼特有什么不一样的吗?
用JUnit无法做的事与使用Cucumber无法做的事一样。反之亦然。
区别在于,尽管JUnit致力于测试,而Cucumber却致力于与非技术人员进行协作。非技术人员不会理解单元测试的功能。但是,他们将能够理解和验证用Gherkin编写的示例。
使用什么更容易(编码,编写测试的速度有多快)?
使用黄瓜时,会有更多的开销。您将必须将每个步骤实现为一种方法,而不仅仅是使用JUnit时要执行的一种测试方法。通过使用纯文本表达示例所获得的可读性有时值得进行额外的工作。
两者都可以使用页面对象吗?
页面对象是您要验证的网页的抽象。这是您作为开发人员/测试人员编写的类。JUnit和Cucumber都可以使用Page对象。实际上,从这个角度来看,工具之间没有区别。
使用JUnit或Cucumber的选择取决于粒度和受众。
效果很好的工作流程是混合使用工具。使用BDD(Cucumber,Gherkin)定义应用程序应如何工作的示例。使用Cucumber实施这些方案。然后,使用JUnit来制定对业务利益相关者来说可能很重要但不必要的细节。考虑一些重要案例,但对于您的涉众而言,细节太多了。
可以在此处找到描述这种混合的图像:https : //cucumber.io/images/home/bdd-cycle.png
不久前,我写了一篇博文,其中谈到了适合该工作的工具:http : //www.thinkcode.se/blog/2016/07/25/the-right-tool-for-the-job
正确的工具可能是黄瓜。也可以是JUnit。这完全取决于您的听众。
简单地说,这两者在完全不同的抽象层次上工作。
JUnit主要是一个自动化框架;使您能够使用 Java 编程语言快速编写测试用例。它提供了可以轻松声明的注释:“这里的这个方法是一个 JUnit 测试”。它旨在作为单元测试的框架;但许多人也用它来驱动全面的“集成”或“功能”测试。
另一方面,Cucumber在更高的抽象级别上工作。您首先以纯文本形式编写“测试描述”。导致可能的关键区别:您不需要了解 Java 即可编写 Cucumber 测试(您只需要一个 Java 程序员提供“胶水代码”,允许 Cucumber 将您的文本输入转换为一些可执行代码) .
从这个意义上说,您以某种方式要求我们在这里比较苹果和萝卜;因为人们会将这两个工具集用于一组不同的“问题解决方案”。但正如列明的那样;您还可以使用 JUnit 来驱动“更大”的测试;所以这两个工具之间的主要区别在于您正在处理的抽象级别。
编辑:您的评论是正确的;由于这些工具用于不同的“设置”,因此您不应期望一个非技术人员能够单独使用 Cucumber 编写涵盖所有内容的良好测试。Cucumber 是一种让非技术人员参与创建测试的好方法;但最终,您正在解决技术(与 Java 相关的)问题;因此,您有时需要 Java 编程专业知识。要么“在同一个人内”;或者至少在您团队中的不同人员中。
| 归档时间: |
|
| 查看次数: |
4329 次 |
| 最近记录: |