2016-09-27 120 views
0

我想问一下Cucumber和JUnit之间的实际区别。我根本没有和黄瓜一起工作;发现了一些文档,但是我会非常感谢来自两个人共同工作的人的反馈(对lvl概述感兴趣)。黄瓜vs Junit

要打破它 - 我感兴趣的(我将使用硒和不量角器):

  1. 是否有任何事情,黄瓜不能做VS Junit的。
  2. 什么更容易使用(编码,你可以写测试的速度有多快)?
  3. 这两个工作与页面对象?

,我需要有些东西来得到完成

  1. 测试CSS样式
  2. 测试页面响应
  3. 上WebElements(点击,获取数据等)
  4. 断言
  5. 标准操作。

除此之外的任何东西都比欢迎。非常感谢你对此的回答,谢谢!

+0

看看QAF-gherkin客户端https://qmetry.github.io/qaf/latest/qaf-gherkin-client.html在这里你检查文档https://qmetry.github.io/qaf/qaf- 2.1.9/gherkin_client.html – user861594

回答

3

JUnit和黄瓜瞄准不同的目标。它们相互补充而不是互相替代。

有没有什么事情,黄瓜不能做的和Junit。

你无法用JUnit做任何你无法用黄瓜做的事情。另一种方式。

不同之处在于,虽然JUnit旨在测试,但Cucumber旨在与非技术人员进行协作。非技术人员不会理解单元测试的作用。但是,他们将能够理解和验证用小黄瓜写的例子。

什么是更容易使用(编码,你能写多快的测试)?

当你使用黄瓜时有更多的开销。您必须将每个步骤实施为一种方法,而不仅仅是一种测试方法,就像您使用JUnit一样。从使用纯文本表达示例中获得的可读性有时候是值得的。

这两个工作都与页面对象?

页面对象是您正在验证的网页的抽象。这是一个你写作开发者/测试者的类。页面对象可以被JUnit和Cucumber使用。事实上,从这个角度来看,这些工具没有区别。

使用JUnit或黄瓜的选择是一个粒度和观众的问题。

运作良好的工作流程是混合工具。定义应用程序如何使用BDD工作的示例(黄瓜,小黄瓜)。使用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。这一切都取决于你的观众。

+0

谢谢,至少对我来说,这真的结束了辩论 –

3

简而言之,这两个工作在完全不同的抽象层次上。

JUnit主要是一个自动化框架;使您能够使用Java编程语言快速编写测试用例。它提供的注释可以轻松声明:“此处的此方法是JUnit测试”。它旨在作为框架unit tests;但许多人也使用它来驱动全面的“集成”或“功能”测试。

黄瓜另一方面工作在一个更高的抽象层次。你首先在纯文本中编写“测试描述”。通向可能的关键区别在于:你不需要知道Java来编写黄瓜测试(你只需要一个java程序员来提供“粘合代码”,它允许Cucumber将你的文本输入变成一些可执行代码) 。

从这个意义上说,你在某种程度上要求我们在这里比较苹果和萝卜;因为人们会将这两个工具集用于不同的“问题解决方案”。但是列出来了;你也可以使用JUnit来驱动“更大”的测试;所以这两种工具的主要区别在于您正在处理的抽象的级别。

编辑:你的评论是正确的;因为那些工具是针对不同的“设置”的,所以你不应该期望一个非技术人员能够使用黄瓜来编写涵盖所有内容的良好测试。黄瓜是一种非技术参与创建测试的好方法;但最终,你正在解决技术(与Java有关的)问题;因此您在某个时候需要Java编程专业知识。 “在同一个人内”;或者至少在你的团队的不同人员中。

+0

谢谢你的回答。在此基础上,由于Cucumber有不同的方法(“你从纯文本中编写”测试描述“开始,导致可能的关键区别:你不需要知道Java来编写黄瓜测试)当我想深入测试时,这会导致一些问题?或者仅仅依靠这一点就会遇到黄瓜无法解决的问题? –

+0

@AlexL看到我编辑的答案。 – GhostCat