TestNG单元测试实例

第一步:在IDE中新建一个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"); 

}

}

第二步:新建一个被测试的类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 ;
 }
 
}
}

第三步:要测试Login 类中的方法是否正确,如果username,password的值均为test,则返回True,否则认为是登陆失败。故在第1步中这样写代码:

Login log = new Login();
boolean tt =log.logintest("test", "test") ;

@Test //测试登录方法是否正确
public void testLogin()
{ 
assertTrue(tt);
}

第四步:在工程中需要配置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>

第五步:Run TestLogin这个类As TestNG,如果Eclipse中的Results of running of class TestLogin的Toolbar变绿,说明测试通过,如果是红色的,说明测试失败。

转载于:https://my.oschina.net/jimmylee216/blog/827880

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java TestNG是一种用于编写和执行单元测试的框架。它可以帮助开发人员进行自动化测试,并提供了丰富的功能和灵活的配置选项。 在Java TestNG中,可以使用@Test注解来标记测试方法。通过使用不同的注解参数,可以控制测试方法的执行顺序、分组和依赖关系。 引用\[1\]中的示例展示了一个使用@Test注解的测试类TestCase1。其中,@Test(enabled=false)表示该测试方法不会被执行,而@Test表示该测试方法会被执行。通过这种方式,可以选择性地执行测试方法。 引用\[2\]中的示例展示了如何使用priority参数来控制测试方法的执行顺序。priority的数值越小,优先级越高,测试方法会按照优先级从小到大的顺序执行。 引用\[3\]中的示例展示了如何使用dependsOnMethods参数来定义测试方法之间的依赖关系。在这个示例中,TestNgLearn2方法依赖于TestNgLearn1方法,只有在TestNgLearn1方法执行成功后,TestNgLearn2方法才会被执行。 总结来说,Java TestNG可以通过注解参数来控制测试方法的执行顺序、分组和依赖关系,从而实现灵活的单元测试。 #### 引用[.reference_title] - *1* *3* [TestNG单元测试框架详解](https://blog.csdn.net/lovedingd/article/details/106784561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java笔记-单元测试框架TestNG](https://blog.csdn.net/qq_19645167/article/details/126280996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值