PowerMock+Mockito+MockMvc实现Controller,Service,Mapper全覆盖测试

本文详细介绍了如何使用PowerMock、Mockito和MockMvc进行Controller、Service和Mapper的全覆盖测试。从配置H2数据库进行测试开始,接着讲解如何使用PowerMock和Mockito针对Service层的简单和复杂方法进行测试,然后演示如何利用MockMvc测试Controller层的接口,包括需要登录或权限的方法。最后,阐述了如何使用SpringTest进行Dao层测试。
摘要由CSDN通过智能技术生成

目录


  1. 使用H2数据库测试
  2. 使用PowerMock和Mockito进行Service层测试

    • 简单方法如何测试
    • 复杂方法如何测试
  3. 使用MockMvc进行Controller层单元测试

    • 简单方法如何测试
    • 需要登陆或者权限的方法如何测试
  4. 使用SpringTest进行Dao层测试

1.使用H2数据库测试

配置文件: spring-config-h2db.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <jdbc:embedded-database id="dataSource" type="H2" database-name="cardapy">
        <jdbc:script location="classpath:h2_type.sql"/>
        <jdbc:script location="classpath:create-db-res.sql"/>
        <jdbc:script location="classpath:insert-data.sql"/>
    </jdbc:embedded-database>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:conf/mybatis-config.xml"/>
        <property name="typeAliasesPackage" value="com.cardpay,
        com.cardpay.common.mapper,
        com.cardpay.mgt.usermanager.model"/>
        <!--<property name="mapperLocations" value="**/model/*.xml"/>-->
        <!--返回Map的拦截器-->
        <property name="plugins">
            <array>
                <bean class="com.cardpay.common.intercepts.SqlTimeInterceptor"/>
                <bean class="com.cardpay.common.intercepts.MapInterceptor"/>
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties">
                       
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果您想在 Karate 测试中使用 Mockito 模拟对象,可以使用 `karate-config.js` 文件中的 `karate-config.js` 配置来注入这些模拟对象。这个配置文件可以让您在测试运行之前设置局变量和其他配置,包括注入对象。 首先,您需要在 `karate-config.js` 文件中导入 Mockito 和您要模拟的对象的类。然后,您可以创建模拟对象并将其注入 Karate 运行器中。例如: ```javascript var Mockito = Java.type('org.mockito.Mockito'); var MyMapper = Java.type('com.example.MyMapper'); var myMapperMock = Mockito.mock(MyMapper.class); karate.configure('afterScenario', function () { Mockito.reset(myMapperMock); }); karate.configure('injector', function (arg) { arg.myMapper = myMapperMock; }); ``` 在上面的示例中,我们首先导入了 Mockito 和 `MyMapper` 类。然后,我们创建了一个 `MyMapper` 的模拟对象并将其存储在 `myMapperMock` 变量中。接下来,我们使用 `karate.configure` 方法配置了一个钩子函数,在每个场景运行之后重置模拟对象。最后,我们使用 `karate.configure` 方法配置了一个注入器,将模拟对象注入 Karate 运行器中。 现在,您可以在 Karate 测试中使用 `myMapper` 对象,并且它将是一个模拟对象。例如: ```cucumber Feature: Example Feature Scenario: Example Scenario Given url 'http://example.com' And def result = myMapper.mapResponse(response) ... ``` 在上面的示例中,我们使用 `myMapper` 对象调用 `mapResponse` 方法,它将被 Mockito 模拟对象代替。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值