Spring 启动测试 - 让应用 运行 更长时间
Spring Boot Testing - Keep the App running for longer
我有一个 Spring 启动应用程序,它接收 API 指令,然后开始在文件中流式传输,对文件进行哈希总计,然后将其流式传输到其他地方。在现实世界中,这可能需要一秒钟,也可能需要数小时。
我想补充一点,使用 POSTMAN
和 curl
我们已经对这个应用程序进行了全面测试,它按照其设计运行。
我们需要用 JUnit 来解决这个问题。
我们正在使用 JUnit 5 我正在尝试 运行 一个测试,其中 API 在一个非常小的文件上被调用来处理(可能是一个总共几秒钟)但是 Spring 引导应用程序关闭得太快意味着测试从未真正完成。
Inbound/Outbound 流都是使用 @Aysnc
方法执行的,我认为这些方法没有帮助,因为它们会进入不同的线程。
我也坚信这种处理不应该用 JUnit 来测试。但我们有一个覆盖目标要达到。这是 IST 测试。
我的问题是...
有谁知道在 JUnit 中保持 Spring 启动应用程序 运行 更长时间的方法?
刚好能看到文件从另一边出来。
目前我还没有使用过任何模拟框架。我对这个想法持开放态度,但如果这是一个可行的选择,我将不胜感激。
在允许 @Test
方法完成之前,您需要引入某种 blocking/polling 来等待异步任务完成。
Awaitility 为这样的测试场景提供了很好的支持。
我有一个 Spring 启动应用程序,它接收 API 指令,然后开始在文件中流式传输,对文件进行哈希总计,然后将其流式传输到其他地方。在现实世界中,这可能需要一秒钟,也可能需要数小时。
我想补充一点,使用 POSTMAN
和 curl
我们已经对这个应用程序进行了全面测试,它按照其设计运行。
我们需要用 JUnit 来解决这个问题。
我们正在使用 JUnit 5 我正在尝试 运行 一个测试,其中 API 在一个非常小的文件上被调用来处理(可能是一个总共几秒钟)但是 Spring 引导应用程序关闭得太快意味着测试从未真正完成。
Inbound/Outbound 流都是使用 @Aysnc
方法执行的,我认为这些方法没有帮助,因为它们会进入不同的线程。
我也坚信这种处理不应该用 JUnit 来测试。但我们有一个覆盖目标要达到。这是 IST 测试。
我的问题是...
有谁知道在 JUnit 中保持 Spring 启动应用程序 运行 更长时间的方法?
刚好能看到文件从另一边出来。
目前我还没有使用过任何模拟框架。我对这个想法持开放态度,但如果这是一个可行的选择,我将不胜感激。
在允许 @Test
方法完成之前,您需要引入某种 blocking/polling 来等待异步任务完成。
Awaitility 为这样的测试场景提供了很好的支持。