junit

springboot使用PropertyResource注解读取指定配置文件的属性(传智播客代码)

只谈情不闲聊 提交于 2020-04-06 09:25:44
接上篇: SpringBoot/Spring使用@Value进行属性绑定(传智播客代码) ConfigurationProperties注解默认会从全局配置文件读取属性 ,当属性多的时候,主配置文件( application.yml、application.properties)会臃肿,因此有必要把某一类别属性单独分开配置 @PropertyResource读取指定配置文件 该注解的value支持string数组,可以填写多个配置文件路径,例如 @PropertyResource(value={"aaa.properties","classpath:bbb.properties"}) Person.java package com.atguigu.bean; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype

springboot使用ImportResource注解加载spring配置文件(传智播客代码)

放肆的年华 提交于 2020-04-06 09:25:11
接上篇: springboot使用PropertyResource注解读取指定配置文件的属性(传智播客代码) @ImportResource可以加载多个配置文件 DemoApplication.java package com.atguigu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @ImportResource(locations = "classpath:beans.xml" ) @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication. class , args); } } beans.xml <? xml version="1.0" encoding="UTF-8" ?> < beans xmlns ="http://www

使用JUnit测试预期异常

£可爱£侵袭症+ 提交于 2020-04-06 05:46:12
开发人员常常使用单元测试来验证的一段儿代码的操作,很多时候单元测试可以检查抛出预期异常( expected exceptions)的代码。在Java语言中,JUnit是一套标准的单元测试方案,它提供了很多验证抛出的异常的机制。本文就探讨一下他们的优点。 我们拿下面的代码作为例子,写一个 测试 ,确保canVote() 方法返回true或者false, 同时你也能写一个测试用来验证这个方法抛出的IllegalArgumentException异常。 public class Student { public boolean canVote(int age) { if (i<=0) throw new IllegalArgumentException("age should be +ve"); if (i<18) return false; else return true; } } (Guava类库中提供了一个作参数检查的工具类--Preconditions类,也许这种方法能够更好的检查这样的参数,不过这个例子也能够检查)。 检查抛出的异常有三种方式,它们各自都有优缺点: 1.@Test(expected…) @Test注解有一个可选的参数,"expected"允许你设置一个Throwable的子类。如果你想要验证上面的canVote()方法抛出预期的异常,我们可以这样写:

springboot读取自定义属性(传智播客代码)

你说的曾经没有我的故事 提交于 2020-04-05 22:33:31
pom.xml <? xml version="1.0" encoding="UTF-8" ?> < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 </ modelVersion > < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > < version > 2.2.6.RELEASE </ version > < relativePath /> </ parent > < groupId > com.atguigu </ groupId > < artifactId > demo </ artifactId > < version > 0.0.1-SNAPSHOT </ version

Spring Boot项目中@SpringBootTest测试的时候卡住,一直Resolving Maven dependencies...

无人久伴 提交于 2020-04-05 22:14:53
问题 用过idea(笔者经常用 2018.3.x )创建 spring boot项目的时候默认会创建一个以下骨架的测试代码 package com.atguigu; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class DemoApplicationTests { @Test void contextLoads() { } } 当开发人员第一次尝试测试代码的时候,会下载Junit5依赖jar包,这个时候就卡死一直没有办法后续开发。笔者曾多次遇到这个问题,今天记录一下 最终被迫无奈结束idea进程。 解决办法 重启后在pom.xml添加以下依赖代码 < dependency > <!-- this is needed or IntelliJ gives junit.jar or junit-platform-launcher:1.3.2 not found errors --> < groupId > org.junit.platform </ groupId > < artifactId > junit-platform-launcher </ artifactId > < scope > test <

IDEA Gradle配置与使用

痴心易碎 提交于 2020-04-05 22:00:32
1.安装Gradle,并添加环境变量。 https://www.cnblogs.com/NyanKoSenSei/p/11458953.html 2.在IDEA中设置Gradle: 3.选中项目中的.gradle文件,右键选择"Import Gradle Project"。 4.接下来会弹出一个界面,Import Module From Gradle。 注意:Create separate module per source set这个不要勾选,不然一个module会分成多个部分。 5.成功导入依赖后,可以通过IDEA最右边的侧栏进行快捷操作。 点击刷新按钮,可以重新导入所有的依赖。 点击+号,并选中相关的.gradle文件,可以导入新的module。 6.在打开项目时,如果module还缺少某些依赖,可以直接在对应的类里面按alt+enter自动导入。 也可以点击File,打开Project Structure里面,点击Modules,点击dependencies,点击+号,导入jar包或者其他的module,如下所示: 7.在.gradle文件中添加新依赖,dir表示的是文件名,include中为jar包,如下: dependencies { compile fileTree(dir: trd, include: 'guava*.jar') compile fileTree

Junit:Junit的断言不起作用

牧云@^-^@ 提交于 2020-04-05 19:25:51
场景:在执行单元测试的时候,assert的断言不起作用,即使assert 1 == 2也可以执行通过 原因和解决:当时我的IDEA乱码,根据网上的解决方案,我在Edit Configuration的VM options的时候,将-ea覆盖成-Dfile.encoding=UTF-8,所以导致失去了-ea的参数,现改为-ea -Dfile.encoding=UTF-8即可生效,-ea参数就是将assertion功能打开 来源: oschina 链接: https://my.oschina.net/u/2430231/blog/3219533

Assumptions

[亡魂溺海] 提交于 2020-04-04 06:49:57
理想情况下,写测试用例的开发人员可以明确的知道所有导致他们所写的测试用例不通过的地方,但是有的时候,这 些导致测试用例不通过的地方并不是很容易的被发现,可能隐藏的很深,从而导致开发人员在写测试用例时很难预测到这些因素,而且往往这些因素并不是开发人员 当初设计测试用例时真正的目的,它们的测试点事希望测试出被测代码中别的出错地方。 比如,一个测试用例运行的 locale(如:Locale.US)与之前开发人员设计该测试用例时所设想的不同(如:Locale.UK),这样会导致测试不通过,但是这可能并不是开发人员之前设计测试用例时所设想的测试出来的有用的失败结果(测试点并不是此,比如测试的真正目的是想判断函数的返回值是否为true,返回false 则测试失败),这时开发人员可以通过编写一些额外的代码来消除这些影响(比如将 locale 作为参数传入到测试用例中,每次运行测试用例时,明确指定 locale),但是花费时间和精力来编写这些不是测试用例根本目的的额外代码其实是种浪费,这时就可以使用 Assumption 假设机制来轻松达到额外代码的目的。编写该测试用例时,首先假设 locale 必须是Locale.UK,如果运行时 locale 是Locale.UK,则继续执行该测试用例函数,如果是其它的 locale,则跳过该测试用例函数,执行该测试用例函数以外的代码,这样就不会因为

今天在搭建spring+reids框架时遇到No qualifying bean of type [org.springframework.data.redis.core.RedisTemplate]

爱⌒轻易说出口 提交于 2020-04-03 22:13:13
今天在测试RedisTemplate时,用spring无法注入RedisTemplate,junit测试报错。 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.redis.core.RedisTemplate] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373) at org.springframework.beans.factory

Spring整合Junit

偶尔善良 提交于 2020-04-02 19:27:52
一. 导入相关依赖 (1) junit依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> 注:Spring 5.x 版本整合Junit时, Junit的版本要求必须在4.12及以上 ,否则会报错 (2)spring-test <!--Spring-test--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> </dependency> 二. 添加注解 在测试类添加注解: /** * RunWith注解: * 作用: 把原有的main方法替换成spring提供的main方法 * 写法固定 */ @RunWith(SpringJUnit4ClassRunner.class) /** * ContextConfiguration注解: