junit 测试 spring+hibernate


这是很不标准的测试用例呵呵
注意这种方法是测试 service层和 dao层同时测试
这时会出现问题 org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
需要把 相关的表设置为  lazy="false" 测试完后别忘了设置回初始状态啊,呵呵
而且需要把 加载 hiberante 的hibernate.cfg.xml 文件的地方 也要像下面一样 配置成绝对路径

public class MessageTestCase {

    ApplicationContext ap;
   
    @Before
    public void setUp() throws Exception {
        String[] config={"file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext.xml",
                "file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext-bussiness.xml",
            "file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext-dao.xml",
            "file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext-datasource.xml",
            "file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext-hibernate.xml",
            "file:///home/hgh/project/java/cnbrn/root/WEB-INF/config/applicationContext.xml"
                       
                       
                };

        ConstantVar.ROOT_PATH="/opt/webserver/apache-tomcat-5.5.23/webapps/cnbrn/";
                ap=new FileSystemXmlApplicationContext(config);
    }


//    @Test
    public void testPassMessage() {
        MessageService messageService=(MessageService)ap.getBean("messageService");
       
        BaseMessagePass passMsg=new BaseMessagePass();
        passMsg.setMessageTitle("测试传递1");
        passMsg.setMessageBody("测试传递1");
        passMsg.setMessageType(MessageConstant.PASS_MESSAGE_TYPE_IN_SITE);
        Calendar c=Calendar.getInstance();
        passMsg.setSendTime(new Date());
        c.setTimeInMillis(((c.getTimeInMillis()/1000)+(24*60*60))*1000);
        passMsg.setEndDate(c.getTime());
        passMsg.setSendDepth(5);
        passMsg.setIsEffect(MessageConstant.PASS_MESSAGE_STATUS_ALIVE);
        Tuser tuser=new Tuser();
        tuser.setId("5dfabc7a0fd83ad8010fd83c02b10006");
       
        try {
            messageService.sendBaseMessagePass(tuser, passMsg);
        } catch (CnbrnException e) {
            e.printStackTrace();
        }
       
    }

    @Test
    public void testSendBaseMessagePass() {
        Tuser tuser=new Tuser();
        tuser.setId("5dfabc7a0fd87c55010fd92d180d0178");
        tuser.setFirstName("啊");
        tuser.setLastName("不");
        MessageService messageService=(MessageService)ap.getBean("messageService");
        BaseMessagePass passMsg =(BaseMessagePass)messageService.select(BaseMessagePass.class, "ff8081811294359701129435ace60001");
        try {
            messageService.passMessage(tuser, passMsg);
        } catch (MessageErrorException e) {
            e.printStackTrace();
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值