博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JUnit测试
阅读量:7191 次
发布时间:2019-06-29

本文共 2089 字,大约阅读时间需要 6 分钟。

环境:idea

通过maven管理jar包,导入:JUnit依赖(百度:mvn JUnit)

首先,对测试的内容要有一个规范的管理和命令。

  0、新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开

  1、测试类所在的包名应该和被测试类所在的包名保持一致 、

  2、测试类使用Test作为类名的后缀

  3、测试方法使用test作为方法名的前缀

 

对于测试的方法中,要求统一写为:public void不带返回参数的方法标签。重要注解:

  @Test:测试方法

    a、@Test(expected=XXException.class):如果程序的异常和XXException.class一样,则测试通过;否则报错

    b、@Test(timeout=100):如果程序的执行能在100毫秒之内完成,则测试通过;否则报错

  @Ignore: 忽略该测试方法,暂不运行此段代码

  @Before: 再每一个测试方法之前运行(如果有多个,则每个测试方法之前都会首先执行该方法)

  @After: 每一个测试方法之后运行,与@Before相反

  @BeforeClass: 方法必须要是静态方法(static 声明),在before之前执行,只会执行一次(如果有多个测试方法)。

  @AfterClass: 方法必须要是静态方法(static 声明),在after之后执行,只会执行一次(如果有多个测试方法)。

 

JUnit提供了一些方法,帮助我们判断某个单元测试是否异常。我们把所有这些方法统称为断言(assert)。断言是单元测试最基本的组成部分。(下面都是常用的,具体语法可参考JUnitAPI文档)

  1、assertEquals([String message],expected,actual):比较两个基本类型或对象是否相等(expected和actual是原始类型数值(primitive value)或者必须为实现比较而具有equal方法,message是选项,如果不相等时会打印message内容。测试时有一点疑惑:Integer在这里不能通过java自动装包拆包隐性转为int型,还是通过指定int型才可。pin!)

  2、assertFalse([String message],boolean condition):断言为假,即condition条件为假时,返回success,反之failure

  3、assertTrue([String message],boolean condition):断言为真,即condition条件为真时,返回success,反之failure

  4、assertNull([String message],java.lang.Object object):检查是否为空;【对比:assertNotNull】

  5、assertSame([String message],expected,actual):检查两个对象是否为同一实例【对比:assertNotSame】

  6、fail( String message ):使测试立即失败,其中 message 参数使可选的。这种断言通常被用于标记某个不应该到达的分支(例如,在一个预期发生的异常之后)

 

示例,如我们在编写接口时,需要Service层进行Test(Controller层一般不用,如果要用的话,使用Mockio)。

代码如下:

1 @RunWith(SpringRunner.class) 2 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 3 public class ValueMetaServiceTest { 4  5     @Autowired 6     private ValueMetaService valueMetaService; 7  8     @Before 9     public void before() {10         System.out.println("测试开始!");11     }12 13     @Test14     public void valueMetaControllerTest() {15         PageValueMeta pageValueMeta = new PageValueMeta();16         pageValueMeta.setId("jhhefsdf23423kdfs");17         valueMetaService.insert(pageValueMeta);18         System.out.println(pageValueMeta);19     }20 }

 

转载于:https://www.cnblogs.com/SunHuaJ/p/9566861.html

你可能感兴趣的文章
c++第五次实验报告
查看>>
laravel 项目 配置 nginx
查看>>
POJ-1797 Heavy Transportation(最大生成树)
查看>>
BZOJ-1407: [Noi2002]Savage (扩展欧几里得)
查看>>
Android快捷便利但不常被使用的原生工具类
查看>>
第三章 生存期模型
查看>>
UNIX网络编程——客户/服务器程序设计示范(六)
查看>>
spring+struts2+spring_jdbc框架的集成
查看>>
javascript string类常用方法整理
查看>>
ViewState的用法
查看>>
Xcode7工程改名
查看>>
oc调用swift的打包.a / framework 不成功?!
查看>>
快速排序
查看>>
python笔记02切片及字符串操作
查看>>
二叉树的递归和非递归实现
查看>>
Dx bad class file magic (cafebabe) or version (0033.0000) ant打包遇到问题2
查看>>
只能输入数字,输入非数字时弹出提示
查看>>
android开发中经常会用到的一些开源项目
查看>>
cocos creator怎么隐藏组件(setVisible)
查看>>
Ubuntu 16.04 LTS发布
查看>>