请问下我应该怎么写我的测试代码?
代码如下:
接口:public interface IMobNumSectionDAO {
/**
 * 添加列表号段
 */
public Integer inserMobNumSection(MobNumSection mobNumSection)throws DataAccessException;
采用strut2+iBATIS!
DAO中iBATIS:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="mobNumSection">  <typeAlias alias="mobNumSection" type="com.funo.nisp.xtgl.vo.MobNumSection"/>
  <!-- 添加手机号段 -->
  <insert id="mns.inserMobNumSection" parameterClass="mobNumSection"> 
    insert into cfg_mobnumsection(number,areaCode,areaName)
      values(
        #number#,
        #areaCode#,
        #areaName#
      )
  </insert>
DAO层:
public class MobNumSectionDAO extends BaseSqlMapDAO implements
IMobNumSectionDAO {
private Logger log = Logger.getLogger(this.getClass());

public MobNumSectionDAO(DaoManager daoManager) {
super(daoManager);
}
/**
 * 添加列表号段
 */
public Integer inserMobNumSection(MobNumSection mobNumSection)throws DataAccessException{
  try{
         return(Integer)insert("mns.inserMobNumSection", mobNumSection);
       }catch(Exception e){
        log.error("inserMobNumSection\n添加列表号段时出现异常\n"+e.toString());
        throw new DataAccessException("添加列表号段时出现异常");
       }
}
service层:
public class MobNumSectionService { private IMobNumSectionDAO mobNumSectionDAO;
  
static private MobNumSectionService mobNumSectionService;
  
static public MobNumSectionService getInstance(){
    if(mobNumSectionService == null){
     mobNumSectionService = new MobNumSectionService();
    }
    return mobNumSectionService;
  }   public MobNumSectionService() {
    DaoManager daoMgr = DaoConfig.getDaoManager();
    mobNumSectionDAO = (IMobNumSectionDAO) daoMgr.getDao(IMobNumSectionDAO.class);
  }
/**
 * 添加列表号段
 */
public Integer inserMobNumSection(MobNumSection mobNumSection)throws DataAccessException{
return mobNumSectionDAO.inserMobNumSection(mobNumSection);
}
daomain中JavaBean:
public class MobNumSection { private Integer id;
private String number;
private Integer areaCode;
private String areaName;
请问下junit是否可以测试每一层?
还有DAO,service层测试添加的代码应该怎么写?。
谢谢!麻烦帮我看下,最好写一段测试代码,谢谢!

解决方案 »

  1.   

    junit测试最好单独写了类
         public class AreaServiceImplTest {
    ApplicationContext context = null;
    IAreaService areaService = null;

    @Before
    public void setUp() {
    context = new ClassPathXmlApplicationContext("app*.xml");
    areaService = (IAreaService) context.getBean("areaService");
    }



    /**
     * 测试根据地区编号查询   */
    @Test
    public void testQueryAreaByNo() {
    Area area = areaService.queryAreaByNo(730);
    Assert.assertEquals(area.getAreaName(), "岳阳");
    }        @After
    public void afert(){
    context = null;
    areaService = null;
    }
    @Before 初始化测试类要用的一些共用的类
    @Test 测试方法
    @After 释放资源
      

  2.   

    我想问下能否发下你这 ApplicationContext context = null;
        IAreaService areaService = null;
    ApplicationContext 的jar包在iBATIS中使用的;我邮箱[email protected]谢谢!
    我看了下别人在spring中是这么写的但我不知道在这怎么写?
    在web.xml文件中 
    <context-param> 
        <param-name>contextConfigLocation </param-name> 
        <param-value>classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml </param-value> 
      </context-param> 
      <listener> 
        <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> 
      </listener> 
      

  3.   

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap> <typeAlias alias="User" type="com.elifefly.User" />
    <!-- 查找所有用户 -->
    <select id="selectAllUser" resultClass="User"> select * from user; </select> <!-- 通过id查找用户 -->
    <!-- parameterClass表示参数类型 -->
    <select id="selectUserById" parameterClass="int"
    resultClass="User">
    select * from user where userId = #userId#
    </select> <!-- 添加用户 -->
    <insert id="insertUser" parameterClass="User">
    insert into user(userId,userName,userPassword,userFlag)
    values(#userId#,#userName#,#userPassword#,#userFlag#);
    <!-- 注意这里的#userId#对应User.java中的get和set方法属性的,要与其对应,修改的时候要对应 -->
    </insert> <!-- 删除用户 -->
    <delete id="deleteUserById" parameterClass="int">
    delete from user where userId = #userId#
    <!-- 特别注意:这个delete中的 #userId#可以改为任意的其他如 #Id#等,而在其他如select等语句不可行 -->
    </delete> <!-- 修改用户 -->
    <update id="updateUserById" parameterClass="User">
    update user set userName = #userName#, userPassword =
    #userPassword#, userFlag = #userFlag# where userId = #userId#
    </update> <!-- 模糊查询,通过用户名查找用户 -->
    <select id="selectUserByName" parameterClass="String"
    resultClass="User">
    select userId,userName,userPassword,userFlag from user where
    userName like '%$userName$%'
    <!-- 非常注意:这个'%$userName$%'中的$符号和#的不同使用之处,$表示会用变量的只替换掉,用#是不行的,#是占位符 -->
    </select>
    <!-- 添加用户,获取自动增长的序列号,处理添加相同的userId情况 -->
    <insert id="insertUserBySequence" parameterClass="User">
    <selectKey resultClass="int" keyProperty="userId">
    SELECT @@IDENTITY as userId
    </selectKey> insert into user(userId,userName,userPassword,userFlag)
    values(#userId#,#userName#,#userPassword#,#userFlag#); </insert></sqlMap>
      

  4.   

      static InputStream is = null;
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    is = new FileInputStream("com/funo/nisp/xtgl/dao/sqlmapdao/sql/mobNumSection.xml");
    }
    请问下我这路径应该怎么写?。