【问题标题】:How to write junit test for below code using mockito?如何使用 mockito 为以下代码编写 junit 测试?
【发布时间】:2019-05-24 07:44:21
【问题描述】:

您好,我是使用 mockito 进行 groovy 单元测试的新手。我想弄清楚如何在不真正更新或插入数据库的情况下为 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;

    }

}

【问题讨论】:

标签: spring spring-boot groovy junit mockito


【解决方案1】:
@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 ?
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 2021-12-13
    • 2018-03-04
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多