§封Ja葬va§

          Junit4測試時出的問題,大家幫我看看

          public class DrawDao extends HibernateDaoSupport {

          /**
          * 添加領用申請
          *
          * @param draw
          *            領用申請信息(不可為null)
          * @return
          */
          @SuppressWarnings("unchecked")
          public boolean insertDraw(Carddrawapply draw, List<Carddrawapplydetail> drawdetailList) {
          boolean flag = false;
          Session session = null;
          Transaction tx = null;
          try {
          session = this.getSession();
          tx = session.beginTransaction();

          long shopid = MyConstant.HTDZ_DEFAULT_SHOPID;//商家ID
          String billtype = CardConstant.CARD_LY_ID;//業務編號
          String engshort = MyConstant.HTDZ_STR;//商家英文簡稱
          String busishort = CardConstant.CARD_LY_CODE;//業務英文簡稱

          String formcode = CardCode.getFormCode(session,shopid,billtype,engshort,busishort);
          if(!"".equals(formcode)){
          draw.setCarddrawapplycode(formcode);
          draw.setSourcetype("0");
          draw.setApplydate(MyFormat.getToday());
          draw.setStatus(StatusUtil.CARDDRAWAPPLY_STATUS01);
          session.save(draw);
          long carddrawapplyid = draw.getCarddrawapplyid();
          session.flush();
          if(drawdetailList.size()==0){
          tx.rollback();
          }else{
          for(Carddrawapplydetail drawdetail : drawdetailList){
          if(drawdetail!=null){
          drawdetail.setCarddrawapplyid(carddrawapplyid);
          session.save(drawdetail);
          }
          }
          tx.commit();
          flag = true;
          }
          }

          } catch (Exception e) {
          e.printStackTrace();
          tx.rollback();
          flag = false;
          } finally {
          session.close();
          }
          return flag;
          }
          }

          以上Dao的方法已經正常。
          對此方法的測試,我是在后期補上的。但是居然報錯。幫我看看:

          Junit4:(不用繼承TestCase)

          public class TestDrawDao{

          private DrawDao drawDao;

          @Before
          public void setUp(){
          drawDao = new DrawDao();
          }


          /**
          * 測試'卡領用申請信息的添加'
          */
          @Test
          public void testInsertDraw(){
          Carddrawapply draw = new Carddrawapply();
          draw.setApplyoperid(1);
          draw.setApplydesc("申請說明");

          List<Carddrawapplydetail> drawdetailList = new ArrayList<Carddrawapplydetail>();

          //IC卡,100元面值的100張
          Carddrawapplydetail drawdetail1 = new Carddrawapplydetail();
          drawdetail1.setCardtype("1");
          drawdetail1.setParvalue(100);
          drawdetail1.setAmount(100);
          //充值卡,50元面值的50張
          Carddrawapplydetail drawdetail2 = new Carddrawapplydetail();
          drawdetail2.setCardtype("2");
          drawdetail2.setParvalue(50);
          drawdetail2.setAmount(50);

          drawdetailList.add(drawdetail1);
          drawdetailList.add(drawdetail2);

          boolean flag = drawDao.insertDraw(draw, drawdetailList);
          //斷言
          Assert.assertEquals(true,flag);
          }
          }

          異常如下:
          java.lang.NullPointerException
          at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:142)
          at com.htdz.card.admin.dao.DrawDao.insertDraw(DrawDao.java:35)

          也就是調用到DrawDao里insertDraw()的這句時報錯:session = this.getSession();

          業務類里調用這個Dao都能正常使用,為什么從測試類里調用就報這個錯誤?
          DrawDao繼承了HibernateDaoSupport了啊。

          posted on 2009-04-30 10:40 §朱家二少§ 閱讀(686) 評論(0)  編輯  收藏 所屬分類: Hibernate


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 桃江县| 自贡市| 山西省| 扬中市| 江孜县| 汾阳市| 淮北市| 长丰县| 原阳县| 金山区| 衡阳市| 茌平县| 东至县| 敦化市| 额济纳旗| 松江区| 辉南县| 志丹县| 登封市| 两当县| 宜城市| 长白| 克什克腾旗| 昭通市| 鄄城县| 民丰县| 双鸭山市| 屏东市| 五大连池市| 富顺县| 筠连县| 鹤庆县| 石泉县| 加查县| 梁平县| 固始县| 鄂州市| 尚志市| 行唐县| 区。| 南宁市|