SpringBoot——Service单元测试(包含mybatis、mapper、私有方法等)

这篇具有很好参考价值的文章主要介绍了SpringBoot——Service单元测试(包含mybatis、mapper、私有方法等)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

  在写单元测试时,免不了遇到私有方法、数据库等一些操作,此时就需要一些mock处理。文章来源地址https://www.toymoban.com/news/detail-648614.html

代码实践

service层demo源码

public class DemoServiceImpl {
    @Autowired
    private DemoMapper demoMapper;

	    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean deleteById(Long id) {
        //获取实体
        DemoEntity entity = this.getDemoEntity(id);
        demoMapper.deleteById(entity);
        return true;
    }
    
	private DemoEntity getDemoEntity() {
	        //构造queryWrapper
        QueryWrapper<DemoEntity> query = Wrappers.query();
        //根据所属系统、是否删除筛选菜单列表
        query.lambda()
                //id筛选
                .eq(DemoEntity::getId, id)
		DemoEntity entity = demoMapper.selectOne(query);
		return entity;
	}
 }

service层单元测试

@PowerMockRunnerDelegate(SpringRunner.class)
@RunWith(PowerMockRunner.class)
public class DemoServiceImplTest {
    /**
     * 注入service
     */
    @InjectMocks
    private DemoServiceImpl demoService;

    /**
     * mapper
     */
    @MockBean
    private DemoMapper demoMapper;
    /**
     * before设置
     */
    @Before
    public void setUp() {
        //构建mybatis
        TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), ""), DemoEntity.class);
    }

    /**
     * 测试 deleteById
     */
    @Test
    public void deleteById() throws Exception {
        //spy service
        DemoServiceImpl spy = PowerMockito.spy(demoService);
        //mock mapper
        DemoMapper demoMapperNew = PowerMockito.mock(DemoMapper.class);
        //注入到service中
        Whitebox.setInternalState(spy, "demoMapper", demoMapperNew);
        //构建实体
        DemoEntity demoEntity = new DemoEntity();
        //mock mapper结果
        PowerMockito.when(demoMapperNew.selectOne(any())).thenReturn();
        //mock 私有方法
        PowerMockito.when(spy, "getDemoEntity", menuId).thenReturn(demoEntity);
        //执行方法
        Boolean result = spy.deleteById(menuId);
        //断言判断
        Assert.assertEquals(true, result);
    }
}

到了这里,关于SpringBoot——Service单元测试(包含mybatis、mapper、私有方法等)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot -02 SpringBoot整合Mybatis、Druid数据源、单元测试、JSP

    mybatis起步依赖 mysql启动依赖 数据源配置 mybatis相关配置 加载mybatis配置文件 mybatis别名配置 日志配置 加载mapper映射文件配置文件 http://localhost:8080/users Druid连接池后台监控:http://localhost:8080/druid/index.html SpringBoot对JSP的支持不是很友好,所以JSP很少被使用 springboot 不支持jsp 但是

    2024年02月06日
    浏览(91)
  • SpringBoot(三层框架Controller,Mapper,Service)中遇到的一些注解整理

    本文主要从Controller层,Service层,Mapper层这三层架构中记录用到的各种注解 还有一些MyBatis用到的注解 持续更新到本人的毕设做完为止,太多了太多了根本学不完哈哈哈 用于建立HTTP请求与处理方法之间的映射关系,其中 XXX Mapping限定了提交http请求的方法 用于获取URL中提交过来的

    2024年01月21日
    浏览(42)
  • SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)

      SpringBoot框架一般分为View层、Controller层、Service层、Mapper层、pojo层。 View层:视图层,根据接到的数据展示页面给用户 Controller层:响应用户需求,决定用什么视图,需要准备什么数据来显示。Controller层负责前后端交互,接收前端请求,调用Service层,接收Service层返回的数据

    2024年02月07日
    浏览(52)
  • (MVC)SpringBoot+Mybatis+Mapper.xml

    前言:本篇博客主要对MVC架构、Mybatis工程加深下理解,前面写过一篇博客:SprintBoot+html/css/js+mybatis的demo,里面涉及到了Mybatis的应用,此篇博客主要介绍一种将sql语句写到了配置文件里的方法,即Mybatis里Mapper.xml文件配置,其主要用于定义sql语句和映射关系 目录 MVC架构流程图

    2024年02月13日
    浏览(45)
  • 快速掌握SpringBoot项目中的domain、mapper、service、controller层作用与书写格式

    承接上篇文章:http://t.csdn.cn/49QHB ①四个层负责的功能与作用: 1. Domain:包含业务实体,用于传输和封装数据。作用:作为数据载体,用于在各个模块之间传递业务数据。 2. Mapper:实现Domain与数据库表的映射及数据访问逻辑。作用:负责数据访问,将业务实体与数据库表进行映射,实现

    2024年02月03日
    浏览(47)
  • Springboot 多模块(A依赖B)集成mybatis , mybatis.mapper-locations 配置多个mapper路径配置

    最近在用SpringBoot 多模块 集成mybatis,模块A 依赖于模块B, 模块A 和模块B 各自有各自的业务逻辑和mapper 文件,模块A 的mapper xml 文件存放在resource 下的 mybatisMapper 文件夹,模块B 的mapper xm 文件存放在 B 模块的resource 下的 mapper 文件夹, 打包时以A 模块为主,B 以jar 包方式被A 依赖

    2024年02月03日
    浏览(54)
  • springboot3 集成mybatis 和通用mapper

    xml版本查看:https://www.cnblogs.com/binz/p/6564490.html springboot3.x以前的版本查看 https://www.cnblogs.com/binz/p/17421063.html springboot3.x查看  https://www.cnblogs.com/binz/p/17654403.html 1、pom引用 !-- openapi、 swagger3、knife4j配置,适用boot3 -- !-- https://doc.xiaominfo.com -- dependency groupId com.github.xiaoymin/ groupI

    2024年02月11日
    浏览(46)
  • Springboot mybatis generate 自动生成实体类和Mapper

    运行MyBatisGeneratorApp类即可实现自动生成实体类、mapper接口、mapper.xml 1、pom文件引入依赖 2、自定义 lombok 插件类 LombokPlugin.java 3、添加 generatorConfig.xml 配置文件 4、Generator 启动类 MyBatisGeneratorApp.java

    2024年02月09日
    浏览(46)
  • springboot中entity层,Dao层,mapper层,service层和controller层的关系和作用(通俗易懂版)

    entity(pojo,model)层 entity是存放实体的类,类中定义了多个类属性,并与数据库表的字段保持一致(通过配置文件可使得类中的驼峰命名和数据库表的下划线所对应)。 mapper(Dao)层 mapper层为数据持久层,mapper层的作用为访问数据库,向数据库发送sql语句,完成数据的增删

    2024年02月06日
    浏览(41)
  • 在springboot中配置mybatis(mybatis-plus)mapper.xml扫描路径的问题

    我曾经遇到过类似问题: mybatis-plus的mapper.xml在src/main/java路径下如何配置pom.xml和application.yml_idea 把mapper文件放到java下如何配置_梓沂的博客-CSDN博客 当时只是找到解决问题的办法,但对mybatis配置来龙去脉并未深入了解,所以再次遇到问题还是受此困扰。 重新复习mybatis plus和

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包