包装異常>>テスト

2295 ワード

包装異常の一例である.

    public Activity updateActivity(Map Mapactivity) {
        Long id = Long.valueOf(Mapactivity.get("id").toString());
        Activity act = (Activity)this.getHibernateTemplate().get(Activity.class,id);
        try {
            BeanUtils.populate(act,Mapactivity);
            this.getHibernateTemplate().update(act);
        }catch(Exception e){
               throw new DolphinOperationException(e,CodeCategories.UPDATE_FAILURE);  //CodeCategories.UPDATE_FAILURE    200 400
        }
        return act;
    }

1.BeanUtils自体は例外を投げ出す必要があるため、すべての例外はException
2.この例では、パッチを更新する必要があるが、ここではアシスタントクラス(Dateタイプが空の場合は異常が発生し、使用に注意)を使用し、パッチを更新後にこのパッチを返し、更新の成功または失敗を通知する.
次はこの異常包装類です

public class DolphinOperationException extends RuntimeException {
    private Integer errorCode;   // 

    public DolphinOperationException(Integer errorCode) {
        this.errorCode = errorCode;
    }

    public DolphinOperationException(Throwable cause, Integer errorCode) {
        super(cause);
        this.errorCode = errorCode;
    }

    public DolphinOperationException(Integer errorCode,String message) {
        super(message); 
    }

    public DolphinOperationException(String message, Throwable cause, Integer errorCode) {
        super(message, cause);
        this.errorCode = errorCode;
    }

    public Integer getErrorCode() {
        return errorCode;
    }
}

RuntimeExceptionを継承し、構造方法を書き換えた
テストクラス

    @Test
    @Rollback(false)
    public void updateActivity(){
        Address ads = new Address();
        ads.setAddress("22222");

        User user = new User();
        user.setId(15l);

        Activity act = new Activity();
        act.setId(2l);
        act.setAddress(ads);
        act.setStartTime(new Date());
        act.setTitle(" 1");
        Activity activity=am.updateActivity(act);
        assertNotNull(activity);      
    }