gpt4 book ai didi

scala - java.lang.RuntimeException : There is no started application error, 从 Scala 工作表中测试类时

转载 作者:行者123 更新时间:2023-12-04 12:05:53 25 4
gpt4 key购买 nike

我想通过从 Scala 工作表运行它来测试一个类。运行此测试脚本时:

import ping.GcmRestServer

val server = new GcmRestServer("AIzaSyCOn...")
server.send(List("dcGKzDg5VOQ:APA91bHNUDaBj01th..."), Map(
"message" -> "Test Message",
"title" -> "Test Title"
))

测试类 GcmRestServer 是
package ping

import play.api.Logger
import play.api.libs.ws.WS
import play.api.libs.json.Json
/**
* Created by Lukasz on 26.02.2016.
*/
class GcmRestServer(val key: String) {

def send(ids: List[String], data: Map[String, String]) = {
import play.api.Play.current
import scala.concurrent.ExecutionContext.Implicits.global

val body = Json.obj(
"registration_ids" -> ids,
"data" -> data
)

WS.url("https://android.googleapis.com/gcm/send")
.withHeaders(
"Authorization" -> s"key=$key",
"Content-type" -> "application/json"
)
.post(body)
.map { response => Logger.debug("Result: " + response.body)}
}
}

给出以下结果:
import ping.GcmRestServer

server: ping.GcmRestServer = ping.GcmRestServer@34860db2
java.lang.RuntimeException: There is no started application
at scala.sys.package$.error(test.sc2.tmp:23)
at play.api.Play$$anonfun$current$1.apply(test.sc2.tmp:82)
at play.api.Play$$anonfun$current$1.apply(test.sc2.tmp:82)
at scala.Option.getOrElse(test.sc2.tmp:117)
at play.api.Play$.current(test.sc2.tmp:82)
at ping.GcmRestServer.send(test.sc2.tmp:16)
at #worksheet#.get$$instance$$res0(test.sc2.tmp:4)
at #worksheet#.#worksheet#(test.sc2.tmp:19)

有人可以解释我做错了什么,以及如何解决这个问题?

最佳答案

线路import play.api.Play.current需要一个正在运行的 Play 应用程序。

我从未使用过 Scala 工作表,但似乎是同样的问题。

在测试中,解决方案是运行一个虚假的应用程序,如 written in the documentation .

关于scala - java.lang.RuntimeException : There is no started application error, 从 Scala 工作表中测试类时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35684477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com