JUnit 断言

一、字符相关匹配符
1、equalTo:

    assertThat(testedValue, equalTo(expectedValue));

    断言被测的testedValue等于expectedValue,equalTo可以断言数值之间,字符串之间和对象之间是否相等,相当于Object的equals方法
2、equalToIgnoringCase:

    assertThat(testedString, equalToIgnoringCase(expectedString));

     断言被测的字符串testedString在忽略大小写的情况下等于expectedString
3、equalToIgnoringWhiteSpace:

     assertThat(testedString, equalToIgnoringWhiteSpace(expectedString);

     断言被测的字符串testedString在忽略头尾的任意个空格的情况下等于expectedString

(注意:字符串中的空格不能被忽略)
4、containsString:

     assertThat(testedString, containsString(subString) );

     断言被测的字符串testedString包含子字符串subString

5、endsWith:

     assertThat(testedString, endsWith(suffix));

     断言被测的字符串testedString以子字符串suffix结尾
6、startsWith:

     assertThat(testedString, startsWith(prefix));

     断言被测的字符串testedString以子字符串prefix开始
二、一般匹配符
1、nullValue():

     assertThat(object,nullValue());

     断言被测object的值为null*/
2、notNullValue():

     assertThat(object,notNullValue());

     断言被测object的值不为null*/

3、is:

     assertThat(testedString, is(equalTo(expectedValue)));

     断言被测的object等于后面给出匹配表达式
     1)is匹配符简写应用之一:

          assertThat(testedValue, is(expectedValue));

          is(equalTo(x))的简写,断言testedValue等于expectedValue

     2)is匹配符简写应用之二:

          assertThat(testedObject, is(Cheddar.class));

          is(instanceOf(SomeClass.class))的简写,断言testedObject为Cheddar的实例

4、not:

     assertThat(testedString, not(expectedString));

     与is匹配符正好相反,断言被测的object不等于后面给出的object
5、allOf:

     assertThat(testedNumber, allOf( greaterThan(8), lessThan(16) ) );

     断言符合所有条件,相当于“与”(&&)

6、anyOf:

     assertThat(testedNumber, anyOf( greaterThan(16), lessThan(8) ) );

     断言符合条件之一,相当于“或”(||)
三、数值相关匹配符

1、closeTo:

     assertThat(testedDouble, closeTo( 20.0, 0.5 ));

     断言被测的浮点型数testedDouble在20.0-0.5 ~ 20.0+0.5范围之内
2、greaterThan:

     assertThat(testedNumber, greaterThan(16.0));

     断言被测的数值testedNumber大于16.0
3、lessThan:

     assertThat(testedNumber, lessThan (16.0));

     断言被测的数值testedNumber小于16.0
4、greaterThanOrEqualTo:

     assertThat(testedNumber, greaterThanOrEqualTo (16.0));

     断言被测的数值testedNumber大于等于16.0

5、lessThanOrEqualTo:

     assertThat(testedNumber, lessThanOrEqualTo (16.0));

     断言被测的testedNumber小于等于16.0
四、集合相关匹配符
1、hasEntry:

     assertThat(mapObject, hasEntry("key", "value" ) );

     断言被测的Map对象mapObject含有一个键值为"key"对应元素值为"value"的Entry项

2、hasItem:

     assertThat(iterableObject, hasItem (element));

     表明被测的迭代对象iterableObject含有元素element项则测试通过
3、hasKey:

     assertThat(mapObject, hasKey ("key"));

     断言被测的Map对象mapObject含有键值“key”
4、hasValue:

     assertThat(mapObject, hasValue(value));

     断言被测的Map对象mapObject含有元素值value



1、assertEquals

  函数原型1:assertEquals([String message],expected,actual)

参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

  expected是期望值,通常都是用户指定的内容。

actual是被测试的代码返回的实际值。

例:assertEquals("equals","1","1");

  函数原型2:assertEquals([String message],expected,actual,tolerance)

参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

  expected是期望值,通常都是用户指定的内容。

  actual是被测试的代码返回的实际值。

  tolerance是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是

  相等的。

  例:assertEquals ("yes",5.8,11.0/2.0,0.5);

  2、assertTrue

   函数原型:assertTrue ([String message],Boolean condition)

   参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

       condition是待验证的布尔型值。

   该断言用来验证给定的布尔型值是否为真,假如结果为假,则验证失败。当然,更有验证为假的测试条件:

          函数原型:assertFalse([String message],Boolean condition)

          该断言用来验证给定的布尔型值是否为假,假如结果为真,则验证失败。

       例: assertTrue("true",1==1);

              assertFalse("false",2==1);

  3、assertNull

  函数原型:assertNull([String message],Object object)

参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

  object是待验证的对象。

  该断言用来验证给定的对象是否为null,假如不为null,则验证失败。相应地,还存在能够验证非null的断言:

  函数原型:assertNotNull([String message],Object object)

该断言用来验证给定的对象是否为非null,假如为null,则验证失败。

例:assertNull("null",null);

       assertNotNull("not null",new String());

  4、assertSame

  函数原型:assertSame ([String message], expected,actual)

参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

  expected是期望值。

  actual是被测试的代码返回的实际值。

  该断言用来验证expected参数和actual参数所引用的是否是同一个对象,假如不是,则验证失败。相应地,也存在验证不是同一个对象的断言:

  函数原型:assertNotSame ([String message], expected,actual)

该断言用来验证expected参数和actual参数所引用的是否是不同对象,假如所引用的对象相同,则验证失败。

例:assertSame("same",2,4-2);

        assertNotSame("not same",2,4-3);

  5、Fail

  函数原型:Fail([String message])

参数说明:

message是个可选的消息,假如提供,将会在发生错误时报告这个消息。

  该断言会使测试立即失败,通常用在测试不能达到的分支上(如异常)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的Java程序和至少四个JUnit断言进行测试的示例: ```java public class Calculator { public int add(int a, int b) { return a + b; } public int subtract(int a, int b) { return a - b; } public int multiply(int a, int b) { return a * b; } public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException("Cannot divide by zero!"); } return a / b; } } ``` 上面这个程序是一个简单的计算器类,其中包含了加、减、乘、除四个基本运算方法。下面是对这个类进行JUnit测试的代码: ```java import org.junit.Test; import static org.junit.Assert.*; public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); int result = calculator.add(2, 3); assertEquals(5, result); } @Test public void testSubtract() { Calculator calculator = new Calculator(); int result = calculator.subtract(5, 3); assertEquals(2, result); } @Test public void testMultiply() { Calculator calculator = new Calculator(); int result = calculator.multiply(2, 3); assertEquals(6, result); } @Test public void testDivide() { Calculator calculator = new Calculator(); int result = calculator.divide(6, 3); assertEquals(2, result); try { calculator.divide(6, 0); fail("Expected an IllegalArgumentException to be thrown"); } catch (IllegalArgumentException e) { assertEquals("Cannot divide by zero!", e.getMessage()); } } } ``` 上面的代码包含了四个测试方法,分别测试了加、减、乘、除四个方法的正确性。其中,使用了四个断言方法: * `assertEquals(expected, actual)`:验证两个数值是否相等; * `fail(message)`:用于在测试未通过时抛出异常; * `try-catch` 语句:用于捕获异常并验证异常信息是否正确。 这些断言方法可以帮助我们快速、准确地判断程序的正确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值