springboot整合redis:
redis的下载和使用参考:
https://www.jianshu.com/p/19628db2e7ef
springboot中整合的redis后 ,都有哪些自动配置:
启动redis:
sping boot配置文件配置redis的连接信息:我们启动服务的时候,就知道我们redis服务 在哪里了
package com.fan.admin;
import com.fan.admin.entity.User;
import com.fan.admin.mapper.UserPlusMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.annotation.Resource;
@Slf4j
@SpringBootTest
class SpringbootWebAdmin01ApplicationTests {
@Autowired
JdbcTemplate jdbcTemplate;
@Resource
private UserPlusMapper userPlusMapper;
@Autowired
private StringRedisTemplate redisTemplate;
@Test
void testRedis01() {
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set("hello","你好");
String hello = operations.get("hello");
System.out.println(hello);
}
}
如果使用@Resource可能报错:
参考:
https://my.oschina.net/tingqianyunluo/blog/3207730
切换jedis:
明确规定客户端类型;
测试底层的连接工厂:
配置redis的其他信息:
统计请求的次数:
修改页面进行取值:
springboot 的单元测试:
注意要整齐引入:
JUnit5常用注解:
package com.fan.admin;
import org.junit.jupiter.api.*;
import java.util.concurrent.TimeUnit;
@DisplayName("junit5的测试")
public class JuniT5Test {
@DisplayName("测试方法1")
@Test
void test01(){
System.out.println(1);
}
@DisplayName("测试方法2")
@Test
void test02(){
System.out.println(2);
}
@BeforeEach
void testBeforeEach(){
System.out.println("每个测试方法之前都会执行此方法");
}
@AfterEach
void testAfterEach(){
System.out.println("每个测试方法执行之后都会执行此方法");
}
@BeforeAll
static void testBeforeAll(){//此方法只能被调用一次,所以要设置成静态方法
System.out.println("在所有测试方法执行之前执行此方法=============");
}
@AfterAll
static void testAfterAll(){//此方法只能被调用一次,所以要设置成静态方法
System.out.println("在所有测试方法执行之后执行此方法=============");
}
@Test
@Timeout(value = 500,unit = TimeUnit.MICROSECONDS)//超出规定的时间,抛出异常
void testTimeOut() throws InterruptedException {
Thread.sleep(502);
}
//重复测试
@Test
@RepeatedTest(5)//当执行此测试的时候,会按照我们给定的次数多次执行
void testRepeatedTest(){
System.out.println("RepeatedTest测试");
}
}
注意,当需要测试所有的方法的时候,我们可以在测试类上点运行并测试。
断言机制:
导入的包:
简单断言的演示:
数组的断言的演示:
组合断言:
异常断言:
超时断言;
快速失败:
项目上线之前先把所有的单元测试要跑一遍,看一下错误报告;
前置条件:
嵌套测试:
参数化测试:
@DisplayName("参数化测试")
@ValueSource(ints = {1,2,3,4,5})
@ParameterizedTest
void testParames(int i){
System.out.println(i+ "*" +"2 =" + 2*i );
}
junit4迁移junit5注意导包和注解的改变: