目前我们正在使用TDD和规划来使用Jbehave迁移到BDD。我只是做了一些谷歌搜索,无法找到任何与Jbehave testNG的网站。我刚刚浏览了Jbehave官方网站,我了解到可以将jbehave库与任何类型的单元测试工具(如TestNg,Junit)集成。但我没有找到任何实际代码的示例代码。 我期待一些专家的以下步骤:
- 如何使用Jbehave + TestNG创建简单的java文件。
用Jbehave实现之后是否可以使用TestNG的所有功能(比如,注释.Out BeforeClass,afterClass, BeforeSuite,AfterSuite)
如何通过TestNG.xml文件运行Jbehave要素文件/类。
- 醇>
如何在Jbehave中集成自定义测试报告?
我真的没想到任何实际的例子或工作代码。我只是想了解概述之旅,以及一些投入来完成这项任务。
它非常有用如果有人分享链接,而且非常基本的代码让我更加清楚。
到目前为止,我尝试了以下内容:
功能文件:
Scenario: Check the google search engine
Given : Open the google home page www.google.com
When : Enter test automation in search box
Then : Proper result should be displayed in results page
测试步骤类文件:
public class GoogleSearchEngine_Steps {
public static WebDriver driver;
@Given("Open the google home page $url")
public static void openUrl(String url) throws Exception {
try {
driver = new FirefoxDriver();
driver.get(url);
} catch (Exception ex) {
ex.printStackTrace();
}
}
@When("Enter $searchKeyword in search box")
public static void searchKeyword(String searchKeyword) throws Exception {
try {
driver.findElement(By.xpath(".//*[@id='gs_htif0']")).sendKeys(searchKeyword);
driver.findElement(By.xpath(".//*[@id='tsf']/input[1]")).click();
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Then("Proper result should be displayed in results page")
public static void result() throws Exception {
try {
driver.quit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
但坚持使用TestNg创建测试运行器类文件。我不确定如何开始。
有人可以帮我创建一个测试运行器类文件来执行上面的代码。
我阅读了一些材料,但我没有足够的时间阅读所有这些材料,并实施如果有人帮助我,我将非常感激。
答案 0 :(得分:4)
使用TestNG运行的快速修复只是注释run()方法 在您的根JUnitStory / Stories类中使用TestNG @Test 注释:
public class YourStory extends JUnitStory/Stories { @org.testng.annotations.Test public void run() throws Throwable { super.run(); } }
请注意,这只是运行故事的一种方法,如果您使用其他基于Embedder的方法,则需要更改相应使用的测试注释。
对于基于Embedder的方法,有文档here。
您可能希望使用JBehave's annotations而不是TestNG,因为您将运行故事和方案而不是类和套件。正如您所看到的,一个故事(几个场景)被视为一个测试,如果您考虑背景等事情,这是有意义的。
由于TestNG将一个故事视为一个测试,我无法理解为什么它不会被接受。试一试。
有关测试报告,请再次参阅JBehave's documentation。它允许注入定制记者。
说了这么多,不要远离TDD 。理想情况是有一些遍历整个系统的高级场景,比这更多的集成测试,以及绝对吨的单元测试。
例如,如果您有要验证的表单,只需输入几个示例,说明如何引导用户填写表单。通过为验证类创建单元测试来检查剩余的验证。 (您仍然可以将它们视为示例,并在评论中添加Given / When / Then,但使用JBehave对于技术受众的测试来说是过度的。)
有关详细信息,请参阅testing pyramid,并避开testing ice-cream cone。