用TestNG测试方法是否正确的一个例子
1、在Eclipse中新建一个TestLogin的类,此类代码如下:
package com.yxl.test;
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
public class TestLogin {
/**
* @param args
*/
@BeforeTest // 标记指定所有测试进行前呼叫此 method
public void beforeAllTest(){
System.out.println("Before All Test");
}
@BeforeMethod // 标记指定每个测试进行前呼叫此 method
public void setUp() {
System.out.println("Before Each Test Method");
}
@Test(groups = { "group1" }) // 标记为测试程式,并为分组 group1
public void group1Test() {
System.out.println("Group 1");
}
@Test(groups = { "group2" }) // 标记为测试程式,并为分组 group2
public void group2Test() {
System.out.println("Group 2");
}
@Test(groups = { "group3" }) // 标记为测试程式,并为分组 group3
public void group3Test() {
System.out.println("Group 3");
}
@Test //测试两个数是否相等
public void add()
{
assertEquals(5,6);
}
Login log = new Login();
boolean tt =log.logintest("test", "test") ;
@Test //测试登录方法是否正确
public void testLogin()
{
assertTrue(tt);
}
@AfterMethod // 标记指定每个测试进行后呼叫此 method
public void tearDown(){
System.out.println("After Each Test Method");
}
@AfterTest // 标记指定所有测试进行后呼叫此 method
public void afterAllTest(){
System.out.println("After All Test");
}
}
2、新建一个被测试的类Login
package com.yxl.test;
public class Login {
public boolean logintest(String username,String password)
{
boolean flag = false ;
if(username=="test" && password=="test" )
{
flag = true ;
return flag ;
}
else
{
return flag ;
}
}
}
3、我们要测试Login 类中的方法是否正确,如果username,password的值均为test,则返回True,否则认为是登陆失败。
故在第1步中这样写代码:
Login log = new Login();
boolean tt =log.logintest("test", "test") ;
@Test //测试登录方法是否正确
public void testLogin()
{
assertTrue(tt);
}
4、在工程中需要配置testng.xml,配置如下:
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="Example" verbose="1">
<listeners>
<listener class-name="priority.PriorityInterceptor" />
</listeners>
<test name="Simple example" >
<!--
<groups>
<run>
<include name="assert" />
<include name="fail" />
<include name="odd" />
<include name="even" />
<exclude name="broken" />
</run>
</groups>
-->
<classes>
<class name="com.yxl.test.TestLogin" />
</classes>
</test>
<!--
<test name="Method interceptor example" >
<classes>
<class name="priority.PriorityTest" />
</classes>
</test>
-->
</suite>
5、Run TestLogin这个类As TestNG,如果Eclipse中的Results of running of class TestLogin的Toolbar变绿,说明测试通过,
如果是红色的,说明测试失败。