testng怎样测试void方法
发布网友
发布时间:2022-04-30 01:55
我来回答
共2个回答
热心网友
时间:2022-06-28 13:31
使用TestNG类执行测试用例。这个类的主入口点在TestNG的框架运行测试。用户可以创建自己的TestNG的对象,并调用它以许多不同的方式:
在现有的testng.xml
合成testng.xml,完全从Java创建
直接设定测试类
您还可以定义哪些群体包括或排除,分配参数,命令行参数:
-d outputdir: 指定输出目录
-testclass class_name: 指定了一个或多个类名
-testjar jar_name: 指定的jar包含测试
-sourcedir src1;src2: ; 分隔源目录列表(只有当使用的javadoc注释)
-target
-groups
-testrunfactory
-listener
testng.xml现有在下面的例子中,我们将创建TestNG的对象。
创建一个类
创建一个Java类进行测试为 MessageUtil.java 在 C:\ > TestNG_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public String printMessage(){
System.out.println(message);
return message;
}
}
创建测试例类
创建一个Java测试类 SampleTest.java
您的测试类添加一个的测试方法testPrintMessage()
添加注释@Test 到方法 testPrintMessage()
实现测试条件和使用的assertEquals API TestNG的检查条件
创建一个Java类文件名 SampleTest.java在 C:\ > TestNG_WORKSPACE
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
Assert.assertEquals(message, messageUtil.printMessage());
}
}
创建 testng.xml
接下来,让我们创建testng.xml文件在 C:\ > TestNG_WORKSPACE 执行测试用例,此文件捕获整个测试XML。这个文件可以很容易地描述所有的测试套件和它们的参数在一个文件中,你可以检查你的代码库或e-mail给同事。这也使得它容易提取测试或*的几个运行时配置的子集(例如,TestNG的database.xml 只能运行测试,行使数据库)。
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Sample test Suite">
<test name="Sample test">
<classes>
<class name="SampleTest" />
</classes>
</test>
</suite>
情况下使用javac编译测试
C:\TestNG_WORKSPACE>javac MessageUtil.java SampleTest.java
现在,运行这个 testng.xml,将运行中定义的测试用例 <test> 标签
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出。
Hello World
===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
热心网友
时间:2022-06-28 13:31
看代码:(仔细看注释!)
[java] view plain copy
/**
*
* <p>
* Title: TestngMethods
* </p>
*
* <p>
* 对应配置文件testng-methods.xml
* Description: Testng的methods测试及配置,参考testng-methods.xml,如果不设置
* exclude和include,默认执行当前测试类时,带有返回值的方法不会被执行
*
* 如果想执行多个同类型或者命名方式类似的多个方法时,可以使用方法组测试,
* '.*'表示一个或多个字符,如果方法命名方式不同,那么可以采用组测试方法进行测试,参考TestGroups
*
* 注:文档错误!
*
* 5.1 - Test methods Test methods are annotated with @Test. Methods annotated
* with @Test that happen to return a value will be ignored, unless you set
* allow-return-values to true in your testng.xml:
*
* <suite allow-return-values="true">
*
* or
*
* <test allow-return-values="true">
*
* 此处在<test >中配置allow-return-values属性无效,测试依旧不会被执行
* </p>
*
* <p>
* Company:
* </p>
*
* @author : Dragon
*
* @date : 2014年10月11日
*/
public class TestngMethods {
/**
* 默认情况下这个方法将被忽略,如果需要执行,需要在xml中配置allow-return-values="true"
*
* @return
*/
@Test
public String getName() {
System.err.println("return name.... getName()");
return "name";
}
@Test
public void funtest() {
System.err.println("this is funtest......");
}
@Test
public void saveMethod1() {
System.err.println("this is saveMethod1......");
}
@Test
public void saveMethod2() {
System.err.println("this is saveMethod2......");
}
@Test
public void saveMethod3() {
System.err.println("this is saveMethod3......");
}
}
配置文件:testng-methods.xml
[html] view plain copy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- allow-return-values 默认值为FALSE,表示返回值将被忽略 -->
<suite name="framework_testng" allow-return-values="true">
<test verbose="2" name="TestMethods">
<classes>
<class name="com.dragon.testng.annotation.TestngMethods">
<methods>
<exclude name="funtest"></exclude>
<include name="getName"></include>
<include name="save.*"></include>
</methods>
</class>
</classes>
</test>
</suite>
运行结果:
[html] view plain copy
return name.... getName()
this is saveMethod1......
this is saveMethod2......
this is saveMethod3......
PASSED: getName
PASSED: saveMethod1
PASSED: saveMethod2
PASSED: saveMethod3
===============================================
TestMethods
Tests run: 4, Failures: 0, Skips: 0
===============================================