zoukankan      html  css  js  c++  java
  • 方法测试单元测试(2)Junit简明指南

    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

        

    一、用常断言

        

     

        

    1. assertEquals([String message],Object target,Object result) target与result不相称,中断测试方法,出输message
    assertEquals(a, b) 测试a是不是即是b(a和b是原始型类值数(primitive value)或者必须为实现较比而拥有equal方法)
    assertEquals断言两个象对相称,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。

        

    public static void assertEquals(Object[] expected, Object[] actual)
    public static void assertEquals(String message, Object[] expected, Object[] actual)
    是JUnit 4 为较比数组添加的两个 assert() 方法.这两个方法以最直接的方法较比数组:如果数组长度同相,且个每对应的元素同相,则两个数组相称,否则不相称。数组为空的况情也作了虑考。 .

        

    2. assertTrue/False([String message],Boolean result) Result为 false/true,中断测试方法,出输message
    assertTrue 断言条件为真,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。
    assertFalse 断言条件为假,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。
    assertFalse(a) 测试a是不是为false(假),a是一个Boolean值数;

        

    3. assertNotNull/Null([String message],Obejct result ) Restult == null/result!=null,中断测试方法,出输message
    assertNull 断言象对为null,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。
    assertNotNull 断言象对不为null,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。
    assertNotNull(a) 测试a是不是非空,a是一个象对或者null;

        

    4.assertSame/NotSame?(Object target,Object result) Traget与result 不指向/指向 统一内存地址(实例),中断测试方法,出输message
    assertSame 断言两个引用指向统一个象对,若不满意,方法抛出带有应相信息AssertionFailedError?常异。
    assertNotSame 断言两个引用指向不同象对,若不满意,方法抛出带有应相信息的AssertionFailedError?常异。
    assertNotSame(a, b) 测试a和b是不是没有都引用统一个象对;

        

    5. fail([String message]) 中断测试方法,出输message
    Fail 让测试失败,并给出指定信息。

        

    二、注解(java annotation)

        

    JUnit 4 用使 Java 5 中的注解(annotation),以下是JUnit 4 用常的几个 annotation 绍介
    @Before:初始化方法
    @After:释放资源
    @Test:测试方法,在这里可以测试期望常异和时超时光
    @Ignore:略忽的测试方法
    @BeforeClass?:针对全部测试,只执行一次,且必须为static void
    @AfterClass?:针对全部测试,只执行一次,且必须为static void
    一个JUnit 4 的单元测试例用执行次序为:
    @BeforeClass? –> @Before –> @Test –> @After –> @AfterClass?

        每日一道理
    只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。

        

    @Ignore:略忽该例用
    如下代码所示,verifyZipCodeMatch不会被执行

        

     

    @Ignore("this regular expression isn't working yet")
    @Test
    public void verifyZipCodeMatch() throws Exception{        
     Pattern pattern = Pattern.compile("^\\d{5}([\\-]\\d{4})"); 
     Matcher mtcher = pattern.matcher("22011");
     boolean isValid = mtcher.matches();        
     assertTrue("Pattern did not validate zip code", isValid);
    }

        

     

        

    三、殊特的测试型类

        

     

        

    1.对常异的测试

        

     

        

    通过在@Test后加上期望的常异,如果没抛出该常异,则测试失败

        

     

    @Test(expected=IndexOutOfBoundsException.class)
     public void verifyZipCodeGroupException() throws Exception{        
      Matcher mtcher = this.pattern.matcher("22101-5051");
      boolean isValid = mtcher.matches();            
      mtcher.group(2);        
     }

        

     

        

    2.对时超的测试

        

    通过在@Test后参加指定的时超时光(单位:毫秒)

        

     

    @Test(timeout=1)
    public void verifyFastZipCodeMatch() throws Exception{        
     Pattern pattern = Pattern.compile("^\\d{5}([\\-]\\d{4})?$"); 
     Matcher mtcher = pattern.matcher("22011");
     boolean isValid = mtcher.matches();        
     assertTrue("Pattern did not validate zip code", isValid);
    }

        

     

        

    注:本文容内重要来自网络摘录,重要是为了整合和便方找查
    入深摸索 JUnit 4 http://www.ibm.com/developerworks/cn/education/java/j-junit4/index.html
    JUnit 4 用使 Java 5 中的注解(annotation) http://niatwangcong.iteye.com/blog/292820
    JUnit断言方法 http://ryxxlong.iteye.com/blog/716428

    文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)

  • 相关阅读:
    postfix发信提示 Error: too many connectino from
    postfix 设置邮件头翻译,本域邮件不进行邮件头翻译,仅发送至外网的进行邮件头翻译?
    postfix 如何设置邮件头翻译的功能
    postfix 如何设置邮件头翻译的功能
    Oracle VM VirtualBox如何设置网络地址转换NAT
    python提取百度经验<标题,发布时间,平均流量,总流量,具体的链接>
    css 需要阴影的效果
    django POST表单的使用
    Vim中如何使用正则进行搜索
    Nginx 如何设置反向代理
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3060161.html
Copyright © 2011-2022 走看看