`

mockito+testng Mock Redis

阅读更多

package yy.xx.redis;

 

import org.apache.log4j.Logger;

import org.springframework.stereotype.Repository;

 

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

 

 

@Repository

public class RedisDAO {

  private static final Logger logger = Logger.getLogger(RedisDAO.class);

  

  private JedisPool jedisPool;

  

  public JedisPool getJedisPool() {

    return jedisPool;

  }

 

  public void setJedisPool(JedisPool jedisPool) {

    this.jedisPool = jedisPool;

  }

 

  public Jedis getClient() {

    Jedis redisClient = jedisPool.getResource();

    if(redisClient == null){

      return redisClient;

    }

    if (!redisClient.isConnected()) {

      redisClient.connect();

      logger.debug("redisClient is on connect");

    }

    return redisClient;

  }

 

  public void closeClient(Jedis client) {

    if (client != null)

      jedisPool.returnResource(client);

    logger.debug("redisClient is return resource");

  }

}

 

 

 

package yy.xx.redis;

 

import org.mockito.InjectMocks;

import org.mockito.Mock;

import org.mockito.Mockito;

import org.mockito.MockitoAnnotations;

import org.testng.Assert;

import org.testng.annotations.Test;

 

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

 

public class RedisDAOTest {

  @InjectMocks//有实际方法调用时用,比如set了想看GET

  private RedisDAO dao;

  

  private final Jedis redisClient = Mockito.mock(Jedis.class); 

  private final JedisPool jedisPool = Mockito.mock(JedisPool.class); 

  

  @Test

  public void test() {

    MockitoAnnotations.initMocks(this);

 

    Assert.assertNotNull(dao);

    dao.setJedisPool(jedisPool);

    Assert.assertNotNull(dao.getJedisPool());

 

    Mockito.when(dao.getClient()).thenReturn(redisClient);

    Assert.assertNotNull(dao.getClient());

    

    dao.closeClient(redisClient);  

  }

}

 

分享到:
评论

相关推荐

    Mockito+Junit5测试方法实践

    内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。 能学到什么:“Mockito 4.6.0 + Junit 5”的组合编程。 使用建议:使用前安装...

    spring集成TestNG与Mockito框架单元测试方法

    TestNG和Mockito是两个在单元测试领域常用的工具,它们分别用于测试管理和模拟对象。本篇文章将深入探讨如何在Spring项目中集成TestNG和Mockito进行单元测试。 TestNG是一个强大的测试框架,它扩展了JUnit的功能,...

    Mocks, Mockito, and Spock

    ### Mocks, Mockito, and Spock 在软件开发过程中,单元测试是确保代码质量的关键环节之一。为了提高单元测试的有效性和可维护性,开发者经常使用模拟对象(Mocks)来代替真实对象进行测试。本文将详细介绍Mocks的...

    基于TestNG+Mockito及自动装配注解的Spring MVC集成测试

    本篇文章将深入探讨如何结合TestNG、Mockito以及Spring的自动装配注解进行有效的集成测试。以下是对这些技术的详细说明: TestNG是一个功能强大的测试框架,它是JUnit的替代品,提供了更丰富的功能,如并行测试执行...

    Mockito+junit5搞定单元测试

    Mockito 和 JUnit 5 是两个非常流行的 Java 开发工具,它们一起提供了强大的单元测试支持。让我们深入探讨如何利用 Mockito 和 JUnit 5 搞定单元测试。 首先,JUnit 5 是一个广泛使用的 Java 测试框架,它提供了...

    SpingMVC+MongoDB+Redis 初步架构设计

    6. **测试和持续集成**:编写单元测试和集成测试,利用Junit和Mockito等工具,确保每个组件的正确性。同时,引入CI/CD工具(如Jenkins或GitLab CI/CD),自动化构建和部署流程。 7. **微服务化**:随着项目发展,可...

    基于springboot+shiro+jwt+vue+redis的后台管理系统.zip

    10. **测试与监控**:项目可能包含单元测试、集成测试,使用JUnit、Mockito等工具,同时,借助SpringBoot的Actuator模块进行健康检查和性能监控。 综上所述,这个后台管理系统利用了多种前沿技术和最佳实践,构建了...

    【mockito实战】mockito+junit搞定单元测试,包含测试代码及被测试项目

    Mockito 是一个流行的 Java 单元测试框架,它允许开发者创建和配置模拟对象,以便在测试中隔离被测试代码。JUnit 是一个广泛使用的 Java 测试框架,它为编写和运行可重复的单元测试提供了基础。将 Mockito 和 JUnit ...

    linux+nginx+tomcat+redis安装配置手册.docx

    testCompile 'org.mockito:mockito-all:1.9.5' testCompile group: 'org.apache.tomcat', name: 'tomcat-coyote', version: '8.0.8' } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = '...

    spring集成TestNG与Mockito框架单元测试方法.pdf

    Spring集成TestNG与Mockito框架单元测试方法的文档详细介绍了如何在Java Spring项目中,利用TestNG和Mockito框架进行单元测试。这种测试方法可以帮助开发者快速上手单元测试,并确保代码质量。文档涉及了多个方面,...

    基于SpringBoot + MyBatis + Redis的图像素材管理系统.zip

    单元测试和集成测试则可以使用JUnit和Mockito等工具进行,确保代码质量。 总之,本项目结合了SpringBoot的便捷性、MyBatis的灵活性和Redis的高性能,构建了一个实用的图像素材管理系统,为用户提供了高效、安全的...

    基于Springboot+MybatisPlus+Redis 外卖网站源代码,外卖管理系统源代码

    【标题】中的“基于Springboot+MybatisPlus+Redis 外卖网站源代码,外卖管理系统源代码”指的是一款使用Spring Boot、Mybatis Plus和Redis技术栈开发的外卖管理系统的完整源码。这个系统可能包括了用户下单、商家...

    基于java的小说网站(springcloud+es+redis+echarts+...).zip

    开发过程中,开发人员会利用Maven或Gradle进行依赖管理,IntelliJ IDEA或Eclipse作为IDE,Junit和Mockito进行单元测试。部署时,可能会采用Docker容器化技术,配合Docker Compose或Kubernetes进行集群部署。 综上...

    基于springboot+mybatis-plus+mysql+redis的NBA球员数据管理系统.zip

    为确保系统的稳定性和正确性,通常会有单元测试和集成测试,利用JUnit和Mockito等工具对关键组件和业务逻辑进行测试。 以上就是基于Spring Boot、MyBatis-Plus、MySQL和Redis的NBA球员数据管理系统的关键知识点。...

    Blog Back-End(个人博客后端服务)(Spring Framework+Mysql+Redis+ELK) .zip

    测试方面,JUnit和Mockito用于单元测试,Postman用于接口测试。 7. **性能优化**:除了使用Redis缓存外,还可以考虑数据库索引优化、读写分离、负载均衡等策略,提高系统的并发处理能力和响应速度。 总的来说,这...

    基于微信小程序的图书馆座位预约系统,后端(SpringBoot+MyBatis+redis).zip

    在开发过程中,为了确保代码质量,可能会运用Maven或Gradle进行项目管理,以及JUnit和Mockito进行单元测试。同时,采用Git进行版本控制,保证团队协作的顺利进行。 总的来说,这个基于微信小程序的图书馆座位预约...

    毕业设计&课设--这是一个基于Springboot+Mybatis+Redis+MySql+RabbitMq的校园医.zip

    8. **开发与部署**:开发过程中,可能使用Maven或Gradle进行构建管理,单元测试用JUnit进行,集成测试可能结合Mockito和Spring Boot测试框架。部署时,Spring Boot应用可直接打包为可执行jar,配合Docker容器化技术...

Global site tag (gtag.js) - Google Analytics