1

我看到了 StringUtils.isBlank() 的实现,并对我的情况感到惊讶,它没有按预期工作。

我正在写一个Junit,我遇到了这个问题。

AmazonSNSRegistrationService.java:

public String doAWSSNSNDeviceRegistration(Map<String, Object> jsonBody){

    String deviceId = (String) jsonBody.get(PushNotificationsConstants.DEVICE_ID);
    String pushToken = (String) jsonBody.get(PushNotificationsConstants.PUSH_TOKEN);
    String appId = (String) jsonBody.get(PushNotificationsConstants.APP_ID);


    if (StringUtils.isBlank(deviceId) || StringUtils.isBlank(pushToken) || StringUtils.isBlank(appId)) {
        System.out.println("$$$$$ Empty");
        throw new Exception("Required parameters are empty.");
    }
    return registerWithSNS(pushToken, deviceId, appId);

  }

AmazonSNSRegistrationServiceTest.java:

@Test
public void doAWSSNSNDeviceRegistrationBlankTest() {
    Map<String, Object> jsonBody = new HashMap<String, Object>();

    jsonBody.put(PushNotificationsConstants.APP_ID, "");
    jsonBody.put(PushNotificationsConstants.DEVICEID, " ");

    try{
        amazonSNSRegistrationService.doAWSSNSNDeviceRegistration(jsonBody);
    }
    catch(Exception e){

    }
}

我没有传递 Push Token ,所以它将为空。其他值是“”或“”。

但在 if 条件下,没有一个语句为真。全部返回 false 并且不抛出异常。我希望此代码在 if (StringUtils.isBlank(deviceId) || StringUtils.isBlank(pushToken) || StringUtils.isBlank(appId)) 中的任何语句返回 true 时引发异常。

4

0 回答 0