首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Junit测试中覆盖IF语句

如何在Junit测试中覆盖IF语句
EN

Stack Overflow用户
提问于 2020-09-22 09:14:26
回答 1查看 123关注 0票数 0

我对Juint测试很陌生。我很难涵盖以下方法的所有内容:

代码语言:javascript
复制
private GetMWSAuthTokenByOwnerAndSignatoryResult getMWSAuthToken(SellerUniversalId ownerId, SellerUniversalId signatoryId,boolean isContractAvailable) {
    try {
        String mwsAuthToken = this.mwsClientAdapter.getMWSAuthToken(
                signatoryId.getMarketplaceMerchant().getMerchantId(),
                ownerId.getMarketplaceMerchant().getMerchantId());
        return buildGetMWSAuthTokenByOwnerAndSignatoryResult(mwsAuthToken);
    } catch (MWSAuthTokenDoesNotExistException e) {
        if (isContractAvailable == false) {
            return GetMWSAuthTokenByOwnerAndSignatoryResult.builder().build();
        } else {
            throw new MWSAuthTokenNotFoundException(e);
        }
    }

其他部分的Junit已经在那里了,但是当isContractAvailable == false.时,我无法覆盖If部分。

其他部分的Junit代码是-

代码语言:javascript
复制
@Test(expected = MWSAuthTokenNotFoundException.class)
public void testMwsAuthThrowsTokenNotFoundException() throws StorageException, MWSException, MWSAuthTokenDoesNotExistException {
    mockContract0.withOwnerId(mockOwnerId);
    mockContracts = Arrays.asList(mockContract0.get());
    mockContractStorage.withGetContractsBySignatoryId(mockSellerId, mockState, mockContracts);
    when( mockMwsClientAdapter.getMWSAuthToken(mockSellerMerchantId, mockOwnerMerchantId) )
            .thenThrow(new MWSAuthTokenDoesNotExistException("message"));

    GetMWSAuthTokenByOwnerAndSignatoryActivity activity = new GetMWSAuthTokenByOwnerAndSignatoryActivity(
            mockContext.get(), mockMwsClientAdapter, mockMetricsHelper);
    activity.enact(getActivityInput( mockOwnerId, mockSellerId ));
}

WHat应该是涵盖If部件?的Juint测试用例,我使用的是JUnit-4。

EN

回答 1

Stack Overflow用户

发布于 2020-09-22 09:47:59

您能找到活动调用要测试的方法的部分吗?它是如何确定isContractAvailable参数的?是生成代码还是自定义代码?

这可能与ContractStorage有关,因此您应该找到一种方法来设置mockContractStorage,以确保isContractAvailable变为假的。

也许是这样:

代码语言:javascript
复制
mockContractStorage.withGetContractsBySignatoryId(mockSellerId, mockState, 
                                                Collections.emptyList());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64006626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档