【发布时间】:2015-03-18 00:32:00
【问题描述】:
我部门的多个小组已经开始使用 Spray 来开发基于 REST 的 Web 服务,并且都遇到了类似的问题,而且到目前为止还没有很好的解决方案。
假设您有以下情况:
FooService extends Actor { ??? }
然后在其他地方:
path("SomePath") {
id =>
get {
requestContext =>
// I apologize for the janky Props usage here, just an example
val fooService = actorRefFactory.actorOf(Props(new FooService(requestContext)))
queryService ! SomeMessage(id)
}
}
换句话说,每个端点都有一个对应的actor,并且在路由内部,该类型的actor将与请求上下文一起启动,一条消息将传递给它,并且该actor将处理 HttpResponse &停下来。
我一直都有足够简单的路由树,我只对 Actor 本身进行了单元测试,并让集成测试来处理路由测试,但我在这里被否决了。所以问题在于,对于单元测试,人们希望能够将 FooService 替换为 MockFooService
有处理这种情况的标准方法吗?
【问题讨论】:
标签: scala unit-testing akka spray spray-test