unit-testing - 如何检查 Java 8 Stream 是否关闭?
问题描述
我有一个带有底层 IOStream 的 java 8 流,我想确保我的方法关闭该流。
有没有办法通过单元测试来检查它?
解决方案
我认为为 Stream 的onClose
方法提供处理程序是最简单的方法。
AtomicBoolean wasClosed = new AtomicBoolean(false);
Stream<> stream = Stream.of(foo, bar).onClose(() -> wasClosed.set(true));
// ...code under test that uses the stream
assertThat(wasClosed.get()).isTrue();
对于它的价值,我合法地需要对此进行测试,因为我们从 JDBC ResultSets 制作 Streams,而实际的 Stream 依赖于 onClose 来关闭 ResultSet。
推荐阅读
- python - 按数值排序 CSV 文件
- elasticsearch - ElasticsearchSinkConnector 无法连接到 Elastic
- javascript - 当用户使用 Angular 6 在地址栏中手动更改时,将 api 中的实际值替换为 URL 中的参数
- python - Keras ImageDataGenerator apply_transform() 方法将图像向相反方向移动
- c# - 使用 refit 进行 json 对象序列化时遇到问题
- regex - 具有动态名称的正则表达式命名捕获组
- javascript - 根据对象键值从对象数组中删除对象
- postgresql - 与 postgis 一起使用的最佳 Spring Boot 依赖项是哪个?
- java - 是否可以在具有模块化应用程序的 NetBeans IDE 中使用带有类路径的外部库?
- python - AttributeError: 'float' 对象没有属性 'write'