加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Spray.io:无法编译测试规范

发布时间:2020-12-16 19:09:23 所属栏目:安全 来源:网络整理
导读:我有以下服务: trait PingService extends MyHttpService {val pingRoutes = path("ping") { get { complete("message" - "pong") } }} MyHttpService是一个扩展HttpService的自定义类,只包含实用方法. 这是测试规范: import akka.actor.ActorRefFactoryim
我有以下服务:

trait PingService extends MyHttpService {

val pingRoutes =
    path("ping") {
      get {
        complete("message" -> "pong")
      }
    }
}

MyHttpService是一个扩展HttpService的自定义类,只包含实用方法.

这是测试规范:

import akka.actor.ActorRefFactory
import org.json4s.{DefaultFormats,Formats}
import org.scalatest.{FreeSpec,Matchers}
import spray.testkit.ScalatestRouteTest

class PingServiceSpec extends FreeSpec with PingService with ScalatestRouteTest with Matchers {

override implicit def actorRefFactory: ActorRefFactory = system

override implicit def json4sFormats: Formats = DefaultFormats

  "Ping service" - {
    "when calling GET /ping" - {
      "should return 'pong'" in {
        Get("/ping") ~> pingRoutes ~> check {
          status should equal(200)
          entity.asString should contain("pong")
        }
      }
    }
  }
}

每当我尝试运行测试,我会收到以下错误:

could not find implicit value for parameter ta: PingServiceSpec.this.TildeArrow[spray.routing.RequestContext,Unit]

 Get("/ping") ~> userRoutes ~> check {
              ^

我做傻事吗任何一种帮助将不胜感激!

编辑:虽然这可能看起来像是this question的笨蛋,但并不是这样.

该文章中提供的解决方案不起作用.

解决方法

ScalatestRouteTest已经提供了一个隐式的ActorSystem.从actorRefFactory方法中删除隐式修饰符,并执行测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读