小编Hen*_*nry的帖子

如何通过单元测试测试 timeZone 方法?

我使用以下方法获取时区偏移值,例如 GMT-3,并返回给定偏移量的 time zoneId 列表。

private static List<String> getTimeZonesByZoneOffset(final int offset) {
    return ZoneId.getAvailableZoneIds()
            .stream()
            .filter(zoneId -> ZoneId.of(zoneId)
                    .getRules()
                    .getOffset(Instant.now())
                    .equals(ZoneOffset.ofHours(offset)))
            .sorted()
            .collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)

然后我从我的数据库中检索与我的区域列表具有相同 zoneId 的相应记录。我在我的服务中使用了这样的方法:

public List<Product> getByOffset(int offset) {
    final List<String> zones = getTimeZonesByZoneOffset(offset);
    final List<Product> products = productRepository.findAllByZone(zones);
    return getProductList(products);
}
Run Code Online (Sandbox Code Playgroud)

我想在单元测试中测试这两种方法。但我不确定我应该如何设置测试机制。是否有任何单元测试示例?

java testing timezone unit-testing timezone-offset

2
推荐指数
1
解决办法
67
查看次数

在 Java 中为测试创建 UUID 列表

我想生成一个模拟List<UUID>并使用随机 UUID 填充它。但是,我不确定通过创建列表和添加项目是否有更合适的方法而不是以下方法。

List<UUID> uuidList = new ArrayList<>();
uuidList.add(UUID.randomUUID());
uuidList.add(UUID.randomUUID());
uuidList.add(UUID.randomUUID());
Run Code Online (Sandbox Code Playgroud)

那么,有没有更好的办法呢?

java testing junit unit-testing mocking

0
推荐指数
1
解决办法
38
查看次数

如何从 Java 中的给定 ZoneOffset 获取 ZoneId 值?

我试图通过将区域偏移量(例如“GMT+2”)作为字符串来获取所有 zoneId。但是,我不确定是否可以使用任何 Java 8+ 库。是否可以获得具有给定区域偏移量的所有区域 id 值?

有一个名为getAvailableZoneIds()的方法,java.time但它不带偏移参数。

java timezone datetime timezone-offset java-time

0
推荐指数
1
解决办法
55
查看次数