§封Ja葬va§

          Junit4測試時(shí)出的問題,大家?guī)臀铱纯?/a>

          public class DrawDao extends HibernateDaoSupport {

          /**
          * 添加領(lǐng)用申請
          *
          * @param draw
          *            領(lǐng)用申請信息(不可為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;//業(yè)務(wù)編號
          String engshort = MyConstant.HTDZ_STR;//商家英文簡稱
          String busishort = CardConstant.CARD_LY_CODE;//業(yè)務(wù)英文簡稱

          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的方法已經(jīng)正常。
          對此方法的測試,我是在后期補(bǔ)上的。但是居然報(bào)錯(cuò)。幫我看看:

          Junit4:(不用繼承TestCase)

          public class TestDrawDao{

          private DrawDao drawDao;

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


          /**
          * 測試'卡領(lǐng)用申請信息的添加'
          */
          @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)

          也就是調(diào)用到DrawDao里insertDraw()的這句時(shí)報(bào)錯(cuò):session = this.getSession();

          業(yè)務(wù)類里調(diào)用這個(gè)Dao都能正常使用,為什么從測試類里調(diào)用就報(bào)這個(gè)錯(cuò)誤?
          DrawDao繼承了HibernateDaoSupport了啊。

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 莱西市| 张掖市| 师宗县| 宣武区| 靖边县| 河南省| 太白县| 甘德县| 紫云| 城步| 西贡区| 博乐市| 辽中县| 高雄县| 海晏县| 柳州市| 临邑县| 徐汇区| 黔南| 会同县| 额尔古纳市| 鸡西市| 交城县| 资兴市| 张家口市| 长沙县| 昔阳县| 登封市| 桑日县| 军事| 平度市| 汕尾市| 潮州市| 彭水| 嘉荫县| 马鞍山市| 建瓯市| 易门县| 灵川县| 龙州县| 平阴县|