Scala 理解:在单元测试中,使用Reader不完整地编写步骤

Scala 理解:在单元测试中,使用Reader不完整地编写步骤,scala,functional-programming,scala-cats,for-comprehension,reader-monad,Scala,Functional Programming,Scala Cats,For Comprehension,Reader Monad,我有一个单元测试的无标记最终实现,当我运行单元测试时,只调用第一步,而不调用其余步骤 以下是测试目标: class NameThing[F[_]: Monad](implicit console: Console[F]) { def program: F[Unit] = for { _ <- console.prompt rawName <- console.read fullName = parse(rawName) _ <- conso

我有一个单元测试的无标记最终实现,当我运行单元测试时,只调用第一步,而不调用其余步骤

以下是测试目标:

class NameThing[F[_]: Monad](implicit console: Console[F]) {

  def program: F[Unit] = for {
    _ <- console.prompt
    rawName <- console.read
    fullName = parse(rawName)
    _ <- console.display(fullName)
  } yield ()

  def parse(rawName:String):FullName = {
    val parts = rawName.split(" ")
    FullName(parts(0), parts(1))
  }
}
我只看到ok1显示

请在此处完成代码:

尝试

new NameThing[Test]().program.run(TestEnv())
new NameThing[Test].program.run只是一个TestEnv=>单元,其中.run是Kleisli的run,您应该在TestEnv上调用它来实际运行程序。

Try

new NameThing[Test]().program.run(TestEnv())
new NameThing[Test].program.run只是一个TestEnv=>单元,其中.run是Kleisli的run,您应该在TestEnv上调用它来实际运行程序