1

Mybatis3を使用してWebアプリケーションを開発するのは初めてです。DAOImplクラスと関連するMapper.xmlがあります。DAO用のJunitケースを書きたいのですが、誰か助けてくれたらとてもありがたいです。

これが私が持っているものです:

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()");

        }

    }
4

1 に答える 1

0

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();
}

または、すべてをモックしたくない場合は、https://code.google.com/p/mybatis/wiki/Testをチェックしてください。

于 2013-03-28T08:23:11.080 に答える