我对Juint测试很陌生。我很难涵盖以下方法的所有内容:
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代码是-
@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。
发布于 2020-09-22 09:47:59
您能找到活动调用要测试的方法的部分吗?它是如何确定isContractAvailable参数的?是生成代码还是自定义代码?
这可能与ContractStorage有关,因此您应该找到一种方法来设置mockContractStorage,以确保isContractAvailable变为假的。
也许是这样:
mockContractStorage.withGetContractsBySignatoryId(mockSellerId, mockState,
Collections.emptyList());https://stackoverflow.com/questions/64006626
复制相似问题