JUnit4总结

摘要:
测试类应该继承与AbstractJUnit4SpringContextTests或AbstractTransactionalJUnit4SpringContextTests对于AbstractJUnit4springcontextTests和AbstractTransactionalJUnit4SpringContextTests类的选择:如果再你的测试类中,需要用到事务管理,就可以使用AbstractTransactionalJUnit4SpringTests类。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManagerbean:如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明Nobeannamed'transactionManager'isdefinded.4.配置测试类添加如下内容在class前,用于配置applicationContext.xml文件的位置。测试方法上方加入@Test6.通过JUnit4执行右键方法名,选择则“RunAs”→“JUnitTest”即可

JUnit4使用要求:

  1. 测试方法必须使用@Test进行修饰
  2. 测试方法必须使用public void 进行修饰,不能带任何的参数
  3. 新建一个源代码目录来存放我们的测试代码
  4. 测试类的包应该和被测试类保持一致
  5. 测试单元中的每个方法必须可以独立测试,测试方法不能有任何的依赖
  6. 测试类使用Test作为类名的后缀
  7. 测试方法使用test作为方法名的前缀 注意:3,6,7不是必须的

JUnit运行流程:

  1. @BeforeClass修饰的方法会在所以的方法被调用前被执行,而且该方法是静态的,所以当检测类被加载后接着就会运行它,而且在内存中它只会存在一份实例,它比较适合加载配置文件。
  2. @AfterClass所修饰的方法通常用来对资源的管理,如关闭数据库的链接。
  3. @Before和@After会在每个测试方法的前后个执行一次。
  4. JUnit4总结第1张

Junit中常用的注解

  1. @Test:将一个普通的方法修饰成为一个测试方法
  2. @BeforeClass:它会在所以的方法运行前被执行,static修饰
  3. @AfterClass:它会在所有的方法运行结束后被执行,static修饰
  4. @Before:会在每一个测试方法被运行前执行一次
  5. @After:会在每一个测试方法运行后被执行一次
  6. @Test(expected=XX.class):JUnit异常处理JUnit4总结第2张
  7. @Test(timeout=毫秒)JUnit4总结第3张
  8. @Ignore:所修饰的测试方法会被测试运行器所忽略
  9. @RunWhith:可以更改测试运行器org.junit.runner.Runner

JUnit测试套件的使用:

编写流程:写一个作为测试套件的入口类,这个类里不包含其他的方法,更改测试运行器Suite.class将要测试的类作为数组传入到Suite.SuiteClasses({})

JUnit4总结第4张

注意:SuiteTest方法体内必须为空,@Suit.SuiteClasses(class1,class2,….):括号内为一个数组

JUnit参数化设置

  1. 更改默认的测试运行器为RunWith(Parameterized.class)
  2. 声明变量来存放预期值和结果值
  3. 声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
  4. 为测试类声明一个带有参数的公共构造函数,并在其中位置声明变量赋JUnit4总结第5张
  5. JUnit4总结第6张

JUnit在web项目中的应用

Spring Test整合JUnit4使用总结

1.加入依赖包

使用Spring的测试框架需要加入以下依赖包:

2.创建测试源目录和包

在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。

3.创建测试类

创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。

测试类应该继承与AbstractJUnit4SpringContextTestsAbstractTransactionalJUnit4SpringContextTests

对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:

如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.

4.配置测试类

添加如下内容在class前,用于配置applicationContext.xml文件的位置。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")

5.创建测试方法

创建测试用方法,推荐名称为 “被测方法名称+ Test”。

测试方法上方加入 @Test

6.通过JUnit4执行

右键方法名,选择则“Run As”→“JUnit Test”即可

免责声明:文章转载自《JUnit4总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇The Speed 歌词HOOK使用:全局键盘钩子下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mybatis问题合集:#{}与${}区别、动态sql语句、缓存机制

一、MyBatis 中#{}和${}区别   #{} 是预编译处理,像传进来的数据会加个" "(#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号)   ${} 就是字符串替换。直接替换掉占位符。$方式一般用于传入数据库对象,例如传入表名.   使用 ${} 的话会导致 sql 注入。什么是 SQL 注入呢?比如 select * from u...

docker-compose 快速部署持续集成测试环境 Gitlab+Harbor+Jenkins pipeline 实现 tag run docker Images

环境 测试部署主机IP:192.168.1.1 Jenkins主机IP:192.168.1.2 Harbor主机IP:192.168.1.3 Gitlab主机IP:192.168.0.10 系统信息: 系统:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Docker版本:18.09 do...

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-07-15. 副标题:家用路由器,配置EAP-PEAP,EAP-TLS企业认证的无线接入服务。 家里的WiFi一般是用WPA2认证,密码只有一个,泄漏了,家里所有设备都要换密码。...

模型评估:模型状态评估

  模型状态 过拟合和欠拟合 过拟合:在训练集上的准确率较高,而在测试集上的准确率较低 欠拟合:在训练集和测试集上的准确率均较低 学习曲线(Learning Curves) 1)概念概述 学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。  ...

Pytest自动化测试

Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。 1、严重性 如果你想对测试用例进行严重等级划分,可以使用 @allure.severity 装饰器,它可以应用于函数,方法或整个类。 它以 allure.severity_level 枚举值作为参数,分别为:BLOCKER(中断),CRITICAL(严重),NORMAL(常规),...

柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test)

K-S检验方法能够利用样本数据推断样本来自的总体是否服从某一理论分布,是一种拟合优度的检验方法,适用于探索连续型随机变量的分布。 Kolmogorov–Smirnov test Kolmogorov–Smirnov statistic 累计分布函数: 定义n个独立同分布(i.i.d.)有序观测样本Xi的经验分布函数Fn为: 其中I[−in...