junit

JUnit4注解

跟風遠走 提交于 2020-03-24 04:05:03
今天学习了下,mybatis中开发dao的方法,用到了JUnit4进行单元测试, 将JUnit4中的注解总结了下,供大家参考学习: JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍: @BeforeClass:针对所有测试方法,只执行一次,且方法声明必须为static void @Before:初始化方法(在测试方法之前执行) @Test:测试方法,在这里可以进行具体的测试 @After:释放资源 (在测试方法之后执行) @AfterClass:针对所有测试方法,只执行一次,且方法声明必须为static void @Ignore:忽略的测试方法 一个单元测试用例执行顺序为: @BeforeClass –> (@Before –> @Test –> @After)...–> @AfterClass 其中每一个测试方法的调用顺序为: @Before –> @Test –> @After 如果只执行一个单元测试用例中的一个方法,则执行顺序为:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass 测试类代码如下: 1 package org.pine.mybatis.dao.impl; 2 3 import java.io.IOException; 4 import

Difference between junit-vintage-engine and junit-jupiter-engine?

情到浓时终转凉″ 提交于 2020-03-23 11:55:09
问题 It's a two-fold question. What is the difference between junit-vintage-engine and junit-jupiter-engine ? SpringBoot starter projects come with an exclusion for junit-vintage-engine . Is it to enforce the use of junit-jupiter-engine? Below is the dependency of my SpringBoot project generated from Spring Initializr: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage<

Junit单元测试多线程的问题

旧城冷巷雨未停 提交于 2020-03-23 05:33:02
今天下午很快完成了一个接口的监控功能,然后屁颠屁颠地用Junit开始单元测试。然后我就开始陷入崩溃的边缘... 监控结束后需要将监控结果以邮件的形式发送给运营的小伙伴维护,前面测试还是很顺利,到了开多线程发邮件时就不行了, 程序也不报错,也接收不到邮件。然后改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是: Junit单元测试不支持多线程 然后 ,整个人都不好了...浪费了我好多时间,就是因为这个!!! 虽然知道了结果,但是笔者还是需要亲自验证一下。 /** * @Title: TestDoWork.java * @Describe: * @author: Mr.Yanphet * @Email: mr_yanphet@163.com * @date: 2016年8月15日 下午5:50:03 * @version: 1.0 */ public class TestDoWork { class DoWork implements Runnable { @Override public void run() { for (int i = 0; i < 10000; i++) { long milliSecond = System.currentTimeMillis(); System.out.println("i=" + i + ",milliSecond=

SpringBoot | 第十三章:测试相关(单元测试、性能测试)

浪子不回头ぞ 提交于 2020-03-23 02:03:10
3 月,跳不动了?>>> 前言 前面写了这么多章节,都是通过浏览器访问的形式,进行接口方法访问进而验证方法的正确与否。显然在服务或者接口比较少时,这么做没有啥问题,但一旦一个项目稍微复杂或者接口方法比较多时,这么验证就有点不符合程序猿的 懒人 的特性了。所以这章节,讲述下 SpringBoot 中的单元测试及基于 Contiperf 压测工具进行性能测试相关方面的知识点。 单元测试 是指对软件中的最小可 测试单元 进行检查和验证。一般上在开发阶段或者程序发布时,都会利用像 Maven 这样的打包工具进行打包前的测试,避免不必要的bug程序被打包部署。 题外话:在开发阶段,都应该要求编写单元测试,核心的模块还需要进行覆盖测试,覆盖率至少要95%以上。 SpringBoot的单元测试 对于 java 开发者而言, Junit 应该无人不知了。所以 SpringBoot 也是基于 Junit 进行单位测试的。 0.加入pom依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 1.这里为了演示,编写了一个简单的测试接口及编写对应的测试类。

LogBack简易教程

假装没事ソ 提交于 2020-03-23 00:33:15
1.简介   LogBack是一个日志框架,它与Log4j可以说是同出一源,都出自Ceki Gülcü之手。(log4j的原型是早前由Ceki Gülcü贡献给Apache基金会的) 1.1 LogBack,Slf4j,Log4j之间的关系   Slf4j是The Simple Logging Facade for Java的简称,是一个简单日志门面抽象框架,它本身只提供了日志Facade API和一个简单的日志类实现,一般常配合Log4j,LogBack,java.util.logging使用。Slf4j作为应用层的Log接入时, 程序可以根据实际应用场景动态调整底层的日志实现框架(Log4j/LogBack/JdkLog...);   LogBack和Log4j都是开源日记工具库,LogBack是Log4j的改良版本,比Log4j拥有更多的特性,同时也带来很大性能提升。详细数据可参照下面地址: Reasons to prefer logback over log4j   LogBack官方建议配合Slf4j使用,这样可以灵活地替换底层日志框架。   (note: 为了优化log4j,以及更大性能的提升,Apache基金会已经着手开发了log4j 2.0, 其中也借鉴和吸收了logback的一些先进特性,目前log4j2还处于beta阶段) 1.2 LogBack的结构  

JDK 11 + JUnit 5 + Jigsaw: Junit fails to run tests for `module-info`

☆樱花仙子☆ 提交于 2020-03-22 06:41:06
问题 I try to use JUnit 5 in a Gradle project. compileJava and compileTestJava both succeed, but test fails with the strange message Could not execute test class 'module-info'. (message from stacktrace): > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///Users/axel/git/utility/build/reports/tests/test/index.html The test result file hints me that " failed to execute tests ", but

java单元测试(使用junit)

放肆的年华 提交于 2020-03-21 23:38:29
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。 1、概述   Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。   Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。   由于Junit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。以后对代码的修改和优化,运行测试成功,则修改成功。   Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。   对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧,以后慢慢地分别讲叙。以下以Class测试为例讲解,除非特殊说明。 2、下载安装 去Junit主页下载最新版本3.8.1程序包junit

Java单体应用 - 常用框架 - 03.JUnit

旧巷老猫 提交于 2020-03-21 22:25:27
原文地址: http://www.work100.net/training/monolithic-frameworks-junit.html 更多教程: 光束云 - 免费课程 JUnit 序号 文内章节 视频 1 TDD - 2 JUnit简介 - 3 JUnit特点 - 4 实例 - 5 注解 - 6 断言 - 7 实例源码 - 请参照如上 章节导航 进行阅读 1.TDD TDD 是测试驱动开发( Test-Driven Development )的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。 TDD 的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP( Extreme Programming ),同样可以适用于其他开发方法和过程。 TDD 的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。 TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。 TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。 2.JUnit简介 JUnit

在做自动化测试之前你需要知道的什么是自动化测?

我怕爱的太早我们不能终老 提交于 2020-03-21 11:45:47
本文是转载“虫师”的文章http://www.cnblogs.com/fnng/p/3653793.html 因为我感觉这篇文章写的很好,但是没有收藏功能,所以在自己的博客转载 希望“虫师”老师能够谅解!在此感谢“虫师”老师的分享!!!!!!! 什么是自动化测?   做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。   首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner、jmeter),或自己所写的一段程序,用于生成1到100个测试数据。狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。   当然,我们更普遍的认识把“自动化测试”看做“ 基于产品或项目UI层的自动化测试”。 分层的自动化测试   这个概念最近曝光度比较高,传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。   相信测试同学对上面的金字塔并不陌生,这不就是对产品开发不同阶段所对应的测试么!我们需要规范的来做 单元测试同样需要相应的单元测试框架,如java的Junit

如何从命令行运行JUnit测试用例

China☆狼群 提交于 2020-03-20 10:28:09
3 月,跳不动了?>>> 我想从命令行运行JUnit测试用例。 我怎样才能做到这一点? #1楼 @lzap给出的答案是一个很好的解决方案。 但是,我想补充一点,您应该添加。 到类路径,这样就不会遗漏当前目录,从而导致您自己的类被遗漏。 在某些平台上,这已经发生在我身上。 因此,JUnit 4.x的更新版本为: java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name] #2楼 我个人将使用Maven surefire JUnit运行程序来执行此操作。 #3楼 实际上,您还可以使Junit测试成为可运行的Jar,然后将可运行的jar称为java -jar #4楼 如果您的项目基于蚂蚁,那么您应该能够从控制台执行以下操作: ant test 如果这不起作用,但是您的项目仍然基于ant,则可以运行 ant -p 列出项目的主要目标。 #5楼 确保JUnit.jar在类路径中,然后从控制台调用命令行运行程序 java org.junit.runner.JUnitCore [测试类名称] 参考: junit常见问题解答 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/3207009