51Testing软件测试论坛

标题: TestNG单元测试实例 [打印本页]

作者: 测试积点老人    时间: 2018-12-25 16:13
标题: TestNG单元测试实例
第一步:在IDE中新建一个TestLogin的类 。
  1. package com.yxl.test;

  2. import static org.testng.AssertJUnit.assertTrue;
  3. import static org.testng.AssertJUnit.assertEquals;
  4. import org.testng.annotations.Test;
  5. import org.testng.annotations.AfterMethod;
  6. import org.testng.annotations.AfterTest;
  7. import org.testng.annotations.BeforeMethod;
  8. import org.testng.annotations.BeforeTest;

  9. public class TestLogin {

  10. /**
  11. * @param args
  12. */
  13. @BeforeTest // 标记指定所有测试进行前呼叫此 method

  14. public void beforeAllTest(){

  15. System.out.println("Before All Test");

  16. }

  17. @BeforeMethod // 标记指定每个测试进行前呼叫此 method

  18. public void setUp() {

  19. System.out.println("Before Each Test Method");

  20. }

  21. @Test(groups = { "group1" }) // 标记为测试程式,并为分组 group1

  22. public void group1Test() {

  23. System.out.println("Group 1");

  24. }

  25. @Test(groups = { "group2" }) // 标记为测试程式,并为分组 group2

  26. public void group2Test() {

  27. System.out.println("Group 2");

  28. }

  29. @Test(groups = { "group3" }) // 标记为测试程式,并为分组 group3

  30. public void group3Test() {

  31. System.out.println("Group 3");

  32. }

  33. @Test //测试两个数是否相等
  34. public void add()
  35. {
  36. assertEquals(5,6);
  37. }

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

  40. @Test //测试登录方法是否正确
  41. public void testLogin()
  42. {
  43. assertTrue(tt);
  44. }

  45. @AfterMethod // 标记指定每个测试进行后呼叫此 method

  46. public void tearDown(){

  47. System.out.println("After Each Test Method");

  48. }

  49. @AfterTest // 标记指定所有测试进行后呼叫此 method

  50. public void afterAllTest(){

  51. System.out.println("After All Test");

  52. }

  53. }
复制代码


第二步:新建一个被测试的类Login。
  1. package com.yxl.test;

  2. public class Login {

  3. public boolean logintest(String username,String password)
  4. {
  5. boolean flag = false ;
  6. if(username=="test" && password=="test" )
  7. {
  8. flag = true ;
  9. return flag ;
  10. }
  11. else
  12. {
  13. return flag ;
  14. }

  15. }
  16. }
复制代码


第三步:要测试Login 类中的方法是否正确,如果username,password的值均为test,则返回True,否则认为是登陆失败。故在第1步中这样写代码:
  1. Login log = new Login();
  2. boolean tt =log.logintest("test", "test") ;

  3. @Test //测试登录方法是否正确
  4. public void testLogin()
  5. {
  6. assertTrue(tt);
  7. }
复制代码


第四步:在工程中需要配置testng.xml,配置如下:
  1. <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >

  2. < suite name="Example" verbose="1">

  3. <listeners>
  4. <listener class-name="priority.PriorityInterceptor" />
  5. </listeners>

  6. <test name="Simple example" >
  7. < !--
  8. <groups>
  9. <run>
  10. <include name="assert" />
  11. <include name="fail" />
  12. <include name="odd" />
  13. <include name="even" />
  14. <exclude name="broken" />
  15. </run>
  16. </groups>
  17. -->
  18. <classes>
  19. <class name="com.yxl.test.TestLogin" />
  20. </classes>
  21. </test>
  22. < !--
  23. <test name="Method interceptor example" >
  24. <classes>
  25. <class name="priority.PriorityTest" />
  26. </classes>
  27. </test>
  28. -->

  29. < /suite>
复制代码


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





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2