2012-04-27 27 views
0

私はSpring JDBCの新機能です。私は3つのJUnitテストを持っていますが、共有データはありません(前/後のメソッドは、独自のデータファイルに独自のデータが必要です)。Springでストアドプロシージャを呼び出すときのJUnitテストに失敗しました

これらの各テストでは、パッケージ内のストアドプロシージャが呼び出されます。私がテストを実行する場合は、個別にそれらのすべてに合格したが、3つすべてを実行し、いずれかに障害が発生した:(私はクラスに失敗1つの変更をテストの順序を変更した場合)

をストアドプロシージャへの呼び出しは、春のJDBCは、使用しています。

によって引き起こさ:org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback以下

SimpleJdbcCall callProcedure = new SimpleJdbcCall(jdbcTemplate) 
       .withCatalogName("ADMIN.CALCULATE") 
       .withProcedureName("GET_TOTALS") 
       .useInParameterNames("account_no", "request_list") 
       .withoutProcedureColumnMetaDataAccess() 
       .declareParameters(
         new SqlParameter("account_no", Types.INTEGER), 
         new SqlParameter("request_list", OracleTypes.ARRAY, "ADMIN.CALC_REQUEST_TAB"), 
         new SqlOutParameter("response_list", OracleTypes.ARRAY, "ADMIN.CALC_RESPONSE_TAB")); 
     callProcedure.compile(); 
     Map<String, Object> inputParams = new HashMap<String, Object>(); 
     // set StructDescriptor and ArrayDescriptor 
     genericTypeDTO.setStructDescriptorName("ADMIN.T_CALC_REQUEST_TYPE"); 
     genericTypeDTO.setArrayDescriptorName("ADMIN.CALC_REQUEST_TAB"); 
        inputParams.put("account_no", accountNo); 
     inputParams.put("clawback_list", genericTypeDTO); 
     Map<String, Object> outData = (Map<String, Object>) callProcedure.execute(inputParams); 

は、テストのいずれかのcallProcedure.execute(inputParams)を打ったときにスローされる例外です;悪いSQL文法[{ ADMIN.CALCULATE.GET_TOTALS(?、?、?)}]; ORA-06533:数ORA-06512を超えた添字: "ADMIN.CALCULATE" で、行2160 ORA-06512:ネストされた例外が ます。java.sql.SQLExceptionあるライン1

で何かアドバイスをいただければ幸いです。

答えて

0

私はあなたがモックフレームワークを見てみる必要があると思います。あなたのユニットテストがお互いに関連しているようです。単体テストは実際には無関係でなければならず、モックを使用することでこれを実現できます。

関連する問題