2017-02-03 13 views
0

AsssertJを使用してjunitで例外テストケースを実行しようとしています。しかし、私は次のエラーを取得しています: 結果:AssertJがテストの失敗を投げています

失敗したテスト: BatchManagerTests.testUniqueBatchpart:225期待のコードをスロー可能オブジェクトを調達します。

テストを実行:149、障害:1、エラー:0、スキップ:0


テストケースのコードは、私がテストをしようとしているコードがある

@Test 
    public void testUniqueBatchpart(){ 
     String userName = "502689031"; 
     List<BatchPartView> batchPartViewList = new ArrayList(); 
     BatchPart batchPart = initBatchPart(new BatchPart(), 1L, 1L, 1L, 1L, false); 
     BatchPart batchPartNext = initBatchPart(new BatchPart(), 2L, 1L, 1L, 2L, false); 
     BatchPartView batchPartView = initBatchPartView(batchPart);  
     BatchPartView batchPartViewNext = initBatchPartView(batchPartNext); 

     batchPartView = batchManager.insertBatchParts(batchPartView, userName); 
     batchManager.insertBatchParts(batchPartViewNext, userName); 

     assertThatThrownBy(() -> batchManager.insertBatchParts(batchPartViewNext, userName)) 
          .isInstanceOf(ValidationError.class) 
          .hasMessage(" Unique constraint violation encountered"); 


    } 

です:

public BatchPartView insertBatchParts(BatchPartView batchPartView, String userName) { 
     if (LOGGER.isDebugEnabled()) { 
      LOGGER.debug("BatchManager:::insertBatchParts()"); 
     } 
     Batch batch; 
     BatchPartView returnBatchPartView = null; 
     try { 
      batch = batchRepository.findByMachineIdAndActiveTrue(batchPartView.getPart().getMachineId()); 
      Long falseCount = batchPartsRepository 
        .countByBatchIdInAndPartIdInAndDeletedFalse(batchPartView.getBatchId(), 
          batchPartView.getPart().getId()); 

      if (null == batch) { 
       batch = batchPartEngine.saveBatch(batchPartView, userName); 
       returnBatchPartView = batchPartEngine.saveBatchPart(batchPartView, batch, userName); 
      } else { 
       if (falseCount < 1) { 
        returnBatchPartView = batchPartEngine.saveBatchPart(batchPartView, batch, userName); 
       } 
       else { 
        Set<BRSValidationError> errorSet = new HashSet<>(); 
        errorSet.add(new BRSValidationError(ERROR, UNIQUECONSTRAINTVIOLATION)); 
        if (!errorSet.isEmpty()) { 
         throw new ValidationError(errorSet); 
        } 
       } 
      } 
     } catch (Exception ex) { 
      LOGGER.error("", ex); 
      Set<BRSValidationError> errorSet = new HashSet<>(); 
      errorSet.add(new BRSValidationError(ERROR, ex.getMessage())); 
      if (!errorSet.isEmpty()) { 
       throw new ValidationError(errorSet); 
      } 
     } 
     return returnBatchPartView; 
    } 
+0

わかりやすいようにログを添付してください – rajadilipkolli

答えて

0

assertThatThrownByあなたのケースでは、与えられたラムダは例外をスローしません() -> batchManager.insertBatchParts(batchPartViewNext, userName)ValidationErrorを投げたはずですが、それは明らかにしませんでした。

関連する問題