Как написать тест junit для кода ниже, используя mockito? - PullRequest
0 голосов
/ 25 декабря 2018

Привет, я новичок в модульном тестировании Groovy с использованием mockito. Я пытаюсь понять, как написать тестовый пример для daoImpl calss без реального обновления или вставки в базу данных.

ниже - мой код.

@Component
public class TransactionDAOImpl implements TransactionDAO {


    @Autowired
    StringUtilities stringUtilities;

    @Autowired
    private TransactionRepository transactionRespository;

    @Override
    @Transactional
    public String create(List<DepositoryTransaction> depositoryTransaction) {

        List<DepositoryTransaction> dep = transactionRespository.saveAll(depositoryTransaction);

        LOGGER.debug("Recieved atm transaction : {} = {}", dep);

        if (dep != null && !dep.isEmpty())

            return stringUtilities.SUCCESS;
        else
            return stringUtilities.FAILURE;

    }

}

1 Ответ

0 голосов
/ 26 декабря 2018
@RunWith(MockitoJUnitRunner.class) // org.mockito.runners.MockitoJUnitRunner is deprecated so use org.mockito.junit.MockitoJUnitRunner instead
public class TransactionDAOImplTest{

    @InjectMocks
    private TransactionDAOImpl transactionDAOImpl;

    @Mock
    StringUtilities stringUtilities;

    @Mock
    private TransactionRepository transactionRespository;

    List<DepositoryTransaction> depositoryTransaction=new ArrayList<>();


    @Test
    public void testCreateSaveAllNullReturn(){
        when(transactionRespository.saveAll(depositoryTransaction)).thenReturn(null);
        assertThat(transactionDAOImpl.create(depositoryTransaction)).isEqualTo(stringUtilities.SUCCESS); // i do not khnow if this is an enum ?
    }

    @Test
    public void testCreateSaveAllEmptyReturn(){
        when(transactionRespository.saveAll(depositoryTransaction)).thenReturn(new ArrayList<>());
        assertThat(transactionDAOImpl.create(depositoryTransaction)).isEqualTo(stringUtilities.SUCCESS); // i do not khnow if this is an enum ?
    }


    @Test
    public void testCreateSaveAllNotEmptyAndNotNullReturn(){
        DepositoryTransaction obj=new DepositoryTransaction();
        depositoryTransaction.add(obj);
        when(transactionRespository.saveAll(depositoryTransaction)).thenReturn(depositoryTransaction);
        assertThat(transactionDAOImpl.create(depositoryTransaction)).isEqualTo(stringUtilities.FAILURE); // i do not khnow if this is an enum ?
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...