我正在尝试通过实现BDD框架来增强我的Webdriver脚本。我开始了解JBehave(JBehave + Webdriver),但在继续讨论之前,我担心需要多少Java代码实现,因为我主要是进行自动化测试。 根据我的看法,JBehave分三步工作:
所以使用这种方法如果我有一个用户故事,例如注册到应用程序,那么:
另一个例子:我有一个执行特定工作流程的用户故事&需要在5-6页上执行一组操作然后我需要为此实现/模拟java代码。
这是JBehave的工作方式吗?还有其他选择。
答案 0 :(得分:1)
jbehave的五步概述:
您可以访问jbehave的详细信息: http://jbehave.org/
您可以访问以下教程示例: https://github.com/jbehave/jbehave-tutorial
答案 1 :(得分:0)
JBehave的工作方式如下:
撰写描述系统某种理想行为的故事。这个故事必须根据JBehave DSL撰写。故事基本上描述了Given / When / Then流程中的一系列步骤。
在java代码中实现Given / When / Then步骤。这涉及针对webdriver API编写代码以与正在测试的应用程序进行交互。
运行故事并分析结果。它要么通过要么失败。
我正在撰写一篇相当详细的博客文章,并在完成后通过链接更新此答案。
答案 2 :(得分:0)
jbehave以一种方式工作,不依赖于webdriver的存在与否 如果你想在“一页”中获得方法,你可以看here
Java BDD框架http://java.dzone.com/articles/brief-comparison-bdd - 对我来说JBehave和Cucumber是最好的选择,因为它拥有大而活跃的社区
答案 3 :(得分:0)
如果您在使用“纯”Java实现故事文件时遇到问题,那么您应该尝试Ginkgo4j。它是RSpec的Java端口,允许您以与RSpec相同的方式进行测试,只需使用Java。
将此依赖项添加到您的POM:
<dependency>
<groupId>com.github.paulcwarren</groupId>
<artifactId>ginkgo4j</artifactId>
<version>1.0.9</version>
<scope>test</scope>
</dependency>
创建一个JUnit测试用例,指定Ginkgo4jRunner runner:
@RunWith(Ginkgo4jRunner.class)
@Ginkgo4jConfiguration(threads = 1)
public class MyTest {
{
Describe("ClassUnderTest", () -> {
Context("#Method", () -> {
BeforeEach(() -> {
// before test logic
});
JustBeforeEach(() -> {
ClassUnderTest.Method();
});
Context("given a context", () -> {
It("should do something", () -> {
// assertions
});
});
Context("given a different context", () -> {
It("should do something else", () -> {
// assertions
});
});
AfterEach(() -> {
// after test logic
});
});
});
}
}