当前位置: 首页 > 知识库问答 >
问题:

为DAO编写Junit测试用例

彭鸿哲
2023-03-14

customer-Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="customer">
    <insert id="newCustomer" parameterType="com.yell.hibu.domain.Customer">
        INSERT INTO CUSTOMER(CUSTOMER_ID, NAME, EMAIL_ID,GRAPHIC_NAME,MOBILE,DOB,LANGUAGE,CITY,COUNTRY) values(#{customerID},#{customerName},#{emailID},#{userFileFileName},#{mobileNo},#{dob},#{language},#{city},#{country})
    </insert>

    <select id="selectCustomer" resultMap="customer">
          SELECT * FROM CUSTOMER WHERE CUSTOMER_ID = #{customerID};
        </select>

             <resultMap type="com.yell.hibu.domain.Customer" id="customer">
             <result property="customerID" column="CUSTOMER_ID" />
                 <result property="customerName" column="NAME" />
                 <result property="emailID" column="EMAIL_ID" />
                 <result property="userFileFileName" column="GRAPHIC_NAME" />
                 <result property="mobileNo" column="MOBILE" />
                 <result property="dob" column="DOB" />
                 <result property="language" column="LANGUAGE" />
                 <result property="city" column="CITY" />
                 <result property="country" column="COUNTRY" />

        </resultMap>
</mapper>

daoimpl.java

package com.yell.hibu.dao;

import org.apache.log4j.Logger;
import org.mybatis.spring.support.SqlSessionDaoSupport;

import com.yell.hibu.domain.Customer;

    public class CustomerDaoImpl extends SqlSessionDaoSupport implements CustomerDao{

        private final Logger logger= Logger.getLogger(this.getClass());

        public void insertCustomer(Customer customer) {
            logger.info("Entered into CustomerDaoImpl :: insertCustomer()");
            getSqlSession().insert("customer.newCustomer", customer);
            logger.info("leaving from CustomerDaoImpl :: insertCustomer()");

        }

    }

共有1个答案

伊富
2023-03-14

由于我使用EasyMock,所以我模拟返回模拟会话对象或抛出异常的sessionFactory实例

@Test(expectedExceptions = Exception.class)
public void testFailureToConnect() throws Exception {

    iocSessionFactory = EasyMock.createMock(SqlSessionFactory.class);
    oracleDAOImpl.setIocOracleSessionFactory(iocSessionFactory);
    EasyMock.expect(iocSessionFactory.openSession()).andThrow(new RuntimeException("CONNECTION ERROR"));
    EasyMock.replay(iocSessionFactory);

    oracleDAOImpl.getData();
}
 类似资料:
  • 请注意,我没有访问实际的代码在一个地方,我可以张贴它。 此外,我也限于(由于不幸的原因)使用Spring 3.0.5或3.1.2。

  • 我想为SpringRetry编写一个junit测试用例,我像下面这样尝试过,但是junit没有按预期工作。我打电话给MaxAttemptRetryService。重试方法,如果失败,最多必须尝试3次。在这里,Dao正在调用一个rest服务,即停止,因此它最多应该尝试3次。因此道。sam方法必须调用3次。 服务类别: Dao类: 测试等级:

  • 我是故意在谈论系统测试。我们确实有一套相当详尽的单元测试,其中一些使用了模拟,而这些测试不会去任何地方。系统测试应该是对单元测试的补充,因此,模拟不是一种选择。 如果我将替换为一个test-method(让我们称之为),并引入一个顺序依赖项(使用JUnit 5非常容易),它强制在运行任何其他测试之前运行,那么这些问题就会消失。 到目前为止还好!这看起来和工作很好。当测试不是由CI服务器执行,而是由

  • 我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5

  • DAO类的相关方面如下 我的src/test/resources/application.properties文件如下所示 在Eclipse中作为JUnit测试运行的跟踪 应用程序结构 -SRC ----application.java ----COM ----Hitstpa ----application.properties --测试 ---爪哇

  • 如何为RestController,Service和DAO层编写JUnit测试用例? 我试过 如何验证rest控制器和其他层中的CRUD方法?