2017-02-03 5 views
0

Я пытаюсь выполнить тестовый тест исключения в junit с помощью AsssertJ. Но я получаю следующую ошибку: Результаты:AssertJ бросает ошибку теста

Неверные тесты: BatchManagerTests.testUniqueBatchpart: 225 Ожидающий код для поднятия броска.

Тесты запуска: 149, Отказы: 1, ошибки: 0, пропущено: 0


Код для TestCase является

@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, но, похоже, это не так.

Смежные вопросы