51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1034|回复: 0

TestNG单元测试实例

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:28
  • 签到天数: 385 天

    连续签到: 4 天

    [LV.9]测试副司令

    发表于 2018-12-25 16:13:05 | 显示全部楼层 |阅读模式
    第一步:在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变绿,说明测试通过,如果是红色的,说明测试失败。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 07:02 , Processed in 0.060278 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表