首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fs2 streams:测试fs2服务器

fs2 streams:测试fs2服务器
EN

Stack Overflow用户
提问于 2019-01-21 07:48:58
回答 1查看 466关注 0票数 2

我有一个这种形式的流:

代码语言:javascript
复制
val server = for {
  _ <- Stream.eval(initTasks)
  serverBinding <- Stream.eval(...)
} yield serverBinding

我知道为了运行它,我应该这样做:

代码语言:javascript
复制
server
  .compile
  .drain
  .unsafeRunAsync(_ => ())

现在,我想为这个服务器编写单元测试,但我只能在服务器完全设置好的情况下运行我的测试。目前,在我的beforeAll块中,我有:

代码语言:javascript
复制
testServer
  .interruptWhen(shutdownSignal)
  .compile
  .drain
  .unsafeRunAsync(_ => ())

Thread.sleep(5000)

在我的afterAll块中,我有:

代码语言:javascript
复制
shutdownSignal.set(true).unsafeRunSync()

在我测试后关闭服务器。

我想知道我是否可以使用信号来实现我声明的目标,这样我就可以以某种方式在信号上“等待”,这样测试只在信号打开时运行。或者,我很想知道做这件事的通用/习惯方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 19:20:11

fs2有一个名为Promise的结构,可以用于此目的。它现在是deprecated,但是可以使用Cat的Deferred。因此,在对流运行compile.drain之前,我们可以让流完成promise/deferred值,然后在beforeAll中等待它的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54282056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档