我们目前有一个仅由常量值组成的对象。
object Constants {
const val VERSION = V1
}
Run Code Online (Sandbox Code Playgroud)
然而,这些常量的值将来可能会改变。因此,我想确保如果该值不满足某些条件,测试就会中断VERSION。我们使用 Mockk 进行模拟,所以我尝试Constants根据这样的文档来模拟对象
mockkObject(Constants)
every { Constants.VERSION } returns -1
assertThat(Constants.VERSION).isEqualTo(-1)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不会编译并出现以下错误:io.mockk.MockKException: Missing calls inside every { ... } block.
有没有办法模拟常量值?或者我应该为常量提供 getter 方法并模拟它们?
我目前正在开发一个 Gradle 5 项目,该项目导入两个不同的 Maven BOM。因此,我使用没有依赖管理插件的原生 Gradle 语法。但是,两个 BOM 可能会为相同的依赖项定义不同的版本。
dependencies {
implementation platform ("org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}")
implementation platform ("com.organisation:xyz:${otherBomVersion}")
}
Run Code Online (Sandbox Code Playgroud)
据我所知,在 Maven 中,定义给定依赖项的版本的第一个 BOM 决定了它。相比之下,在Gradle 依赖管理插件中,为给定依赖定义版本的最后一个 BOM 决定了它。
在纯 Gradle 5 中如何处理导入的 BOM 的顺序?
正确设置项目后,我需要读取/导入几个.bsq文件到我的环境中.我尝试使用这样的env.readFile()方法:
DataSet<T> data = env.readFile(*insertFileInputFormatHere*, filePath);
Run Code Online (Sandbox Code Playgroud)
但我无法得到合适的FileInputFormat.由于它是抽象的,我不能拥有自己的实例.我应该扩展abstract class FileInputFormat并使用我自己的扩展来实例化一个FileInputFormat?还是有另一种我不认识的方式?
我使用 dop > 1 执行程序,但我不需要多个输出文件。在 Java 中myDataSet.writeAsText(outputFilePath, WriteMode.OVERWRITE).setParallelism(1);正在按预期工作。
但当我在 Python 中尝试同样的方法时,它不起作用。这是我的代码: myDataSet.write_text(output_file, write_mode=WriteMode.OVERWRITE).set_degree_of_parallelism(1)
有可能在Python中实现这种行为吗?
我已经使用 Flink CEP 实现了一个匹配三个事件的模式,例如A->B->C. 在我定义了我的模式后,我生成了一个
PatternStream<Event> patternStream = CEP.pattern(eventStream, pattern);
与PatternSelectFunction这样的
patternStream.select(new MyPatternSelectFunction()).print();
这就像一个魅力,但我对所有匹配事件的事件时间感兴趣。我知道传统的 Flink 流 API 提供了丰富的功能,允许您注册 Flink 的内部延迟跟踪器,如本问题所述。我还看到 Flink 1.8RichPatternSelectFunction添加了一个新功能。但不幸的是我无法使用 Flink CEP 设置 Flink 1.8。
最后,有没有办法获取所有匹配事件的事件时间?