个性化阅读
专注于IT技术分析

TestNG @BeforeTest注解用法图解

在自动化测试用例时, 你有一个要求, 希望你首先删除提交的数据。例如, 当你运行测试用例时, 你将在表格中填写详细信息, 并将数据保存在数据库中。当你再次运行测试用例时, 你将收到一个错误消息”数据已存在”。

@BeforeTest:@BeforeTest注释下的方法将在属于该文件夹的任何测试之前首先执行。

让我们通过一个例子来理解。

第一种情况:将@BeforeTest注释的方法放在开头时。

步骤1:打开Eclipse。

步骤2:我们创建两个Java项目, 即it_department.java和hr_department.java。

it_department.java

package com.srcmini;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class it_department 
{
	
  @BeforeTest                                             // annotated method placed in the beginning.
  public void before_test()
  {
	  System.out.println("It will be executed first");
  }
  @Test
  public void software_developers()
  {
	  System.out.println("Software Developers");
  }
  
  @Test
  public void software_testers()
  {
	  System.out.println("Software Testers");
  }
  
  @Test
  public void qa_analyst()
  {
	  System.out.println("QA Analyst");
  }}

在上面的代码中, 在@BeforeTest注释下放置了一个方法, 该方法将在it_department中可用的所有测试方法之前首先执行。

hr_department.java

package com.srcmini;

import org.testng.annotations.Test;

public class hr_department 
{
	
	@Test
	public void manager()
	{
		System.out.println("Manager");
	}
	
	@Test
	
	public void hr()
	{
		System.out.println("HR");
	}
	
	@Test
	public void counsellor()
	{
		System.out.println("Counsellor");
	}

}

步骤3:创建testng.xml文件。 testng.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test_suite">
<test name="IT Department">
<classes>
<class name="com.srcmini.it_department"/>
</classes>
</test> <!-- Test -->
<test name="HR Department">
<classes>
<class name="com.srcmini.hr_department"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

步骤4:运行testng.xml文件。右键单击testng.xml, 然后将光标向下移动到Run As, 然后单击1 TestNG Suite。

输出

TestNG @BeforeTest注解

上面的输出显示@BeforeTest批注中的方法首先在it_department的所有测试案例之前执行。

第二种情况:将@BeforeTest带注释的方法放在最后。

源代码

package com.srcmini;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class it_department 
{
	
  @Test
  public void software_developers()
  {
	  System.out.println("Software Developers");
  }
  
  @Test
  public void software_testers()
  {
	  System.out.println("Software Testers");
  }
  
  @Test
  public void qa_analyst()
  {
	  System.out.println("QA Analyst");
	  
  }
  @BeforeTest
  public void before_test()                               // annotated method placed at the end.
  {
	  System.out.println("It will be executed first");
  }
}

在上面的代码中, 我们将@BeforeTest注释方法放在最后。

输出

TestNG @BeforeTest注解

在上面的输出中, 我们得出结论, 首先执行@BeforeTest注释方法, 因此, 得出结论, 将@BeforeTest注释方法放置在任何地方, 它将首先执行。


赞(0)
未经允许不得转载:srcmini » TestNG @BeforeTest注解用法图解

评论 抢沙发

评论前必须登录!