http4s: В чем разница между фактическим и ожидаемым значением? - PullRequest
0 голосов
/ 20 сентября 2018

версии:

  • http4s: 0.18.1
  • specs2: 4.0.0

Я использую http4s и пишу юнит-тест для маршрутизаторов, но есть немного документов об утверждении заголовков.

Когда код ниже выполняется, он может быть скомпилирован, но не может.

код:

import cats.effect.IO
import org.http4s._
import org.http4s.dsl.io._
import org.http4s.headers._
import org.http4s.testing.Http4sMatchers
import org.specs2.mutable.Specification

class RedirectSpec extends Specification with Http4sMatchers {
  "testing" >> {
    val response: IO[Response[IO]] = Found(Location(Uri.unsafeFromString("")))
    response must returnStatus(Found)
    response must returnValue(
      haveHeaders(
        Headers(
          `Content-Length`.zero,
          Location(Uri.unsafeFromString(""))
        )
      )
    )
  }
}

вывод:

$  sbt "testOnly RedirectSpec"
...
[info] RedirectSpec
[error] x testing
[error]  the headers 'Headers(Content-Length: 0, Location: )' is not the same as Headers(Content-Length: 0, Location: ) (RedirectSpec.scala:13)
[info] Total for specification RedirectSpec
[info] Finished in 655 ms
[info] 1 example, 1 failure, 0 error
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error]         RedirectSpec
[error] (test:testOnly) sbt.TestsFailedException: Tests unsuccessful

В чем разница между фактическим и ожидаемым значением?Если это не так, скажите, пожалуйста, как сделать утверждение о заголовках.

1 Ответ

0 голосов
/ 20 сентября 2018

Это почти наверняка ошибка, так как один из собственных тестов Http4s делает что-то похожее и дает сбой, когда я запускаю его с Http4sMatchers с похожей ошибкой.Я сообщил об ошибке .

...