来自 AWS SDK 的模拟 ListUsersIterable - JUnit
Mock ListUsersIterable from AWS SDK - JUnit
在我的服务 class 方法中,我有这段代码需要测试
List<UserType> users = new ArrayList<>();
ListUsersIterable responses = cognitoclient.listUsersPaginator(ListUsersRequest
.builder()
.userPoolId(userUserPoolId)
.build());
for (ListUsersResponse response : responses) {
users.addAll(response.users());
}
在模拟 cognitoclient.listUsersPaginator()
时,我无法创建 ListUsersIterable 的存根,因为没有 setter 方法可用。
以下是我正在使用的 AWS 依赖项
implementation platform('software.amazon.awssdk:bom:2.15.0')
implementation 'software.amazon.awssdk:cognitoidentityprovider'
implementation 'software.amazon.awssdk:sts'
找到解决方案。
List<AttributeType> userAttributesList = new ArrayList<>();
userAttributesList.add(AttributeType.builder().name("custom:status").value("active").build());
ListUsersIterable mockUsersIterable = mock(ListUsersIterable.class);
when(cognitoclient.listUsersPaginator(any(ListUsersRequest.class))).thenReturn(mockUsersIterable);
List<ListUsersResponse> list = new ArrayList<>();
List<UserType> userTypeList = new ArrayList<>();
userTypeList.add(UserType.builder().attributes(userAttributesList).build());
list.add(ListUsersResponse.builder().users(userTypeList).build());
when(mockUsersIterable.iterator()).thenReturn(list.iterator());
在我的服务 class 方法中,我有这段代码需要测试
List<UserType> users = new ArrayList<>();
ListUsersIterable responses = cognitoclient.listUsersPaginator(ListUsersRequest
.builder()
.userPoolId(userUserPoolId)
.build());
for (ListUsersResponse response : responses) {
users.addAll(response.users());
}
在模拟 cognitoclient.listUsersPaginator()
时,我无法创建 ListUsersIterable 的存根,因为没有 setter 方法可用。
以下是我正在使用的 AWS 依赖项
implementation platform('software.amazon.awssdk:bom:2.15.0')
implementation 'software.amazon.awssdk:cognitoidentityprovider'
implementation 'software.amazon.awssdk:sts'
找到解决方案。
List<AttributeType> userAttributesList = new ArrayList<>();
userAttributesList.add(AttributeType.builder().name("custom:status").value("active").build());
ListUsersIterable mockUsersIterable = mock(ListUsersIterable.class);
when(cognitoclient.listUsersPaginator(any(ListUsersRequest.class))).thenReturn(mockUsersIterable);
List<ListUsersResponse> list = new ArrayList<>();
List<UserType> userTypeList = new ArrayList<>();
userTypeList.add(UserType.builder().attributes(userAttributesList).build());
list.add(ListUsersResponse.builder().users(userTypeList).build());
when(mockUsersIterable.iterator()).thenReturn(list.iterator());