单元测试AWS SNS发布消息

时间:2019-11-05 20:10:02

标签: java junit mocking amazon-sns aws-sdk-java-2.0

我想知道如何测试这样的方法:

public PublishResponse broadcast(String eventJson, Class<? extends BaseEvent> type) {
    //Build Sns client.
    AwsCredentials awsCredentials = AwsBasicCredentials
            .create(snsConfiguration.getAwsAccessKeyId(), snsConfiguration.getAwsSecretAccessKey());
    StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(awsCredentials);
    SnsClient snsClient = SnsClient.builder().credentialsProvider(credentialsProvider).build();
    //Prepare message attributes.
    Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
    MessageAttributeValue messageAttributeValue = MessageAttributeValue.builder().dataType("String").stringValue(type.getName())
            .build();
    messageAttributes.put("type", messageAttributeValue);
    //Publish message with event json to Amazon SNS.
    return snsClient.publish(PublishRequest.builder()
            .message(eventJson)
            .messageAttributes(messageAttributes)
            .topicArn(snsConfiguration.getTopicARN())
            .build());
}

此处的所有代码均取决于AWS开发工具包API。我知道我可以在这里开玩笑,但最终,他的方法的职责是向SNS发送消息。如何为此类事情编写统一测试?

0 个答案:

没有答案
相关问题