我正在使用scalatest编写scala.js测试,我需要在其中创建XMLHttpRequest对象。我收到以下错误,无法找出原因。
[info] scala.scalajs.js.JavaScriptException: TypeError: $g.XMLHttpRequest is not a function
我已将失败的测试减少到:
package oat.browser.network
import org.scalajs.dom.XMLHttpRequest
import org.scalatest.FreeSpec
class AjaxToolsSpec extends FreeSpec {
"AjaxTools" - {
"should parse a simple object" in {
val xhr = new XMLHttpRequest() // Failing line
this.succeed
}
}
}
我已成功加入该行
val xhr = new XMLHttpRequest()
在我的主程序中,工作正常。
那导致这种情况的测试环境有什么奇怪之处?
build.sbt包含
libraryDependencies ++= Seq(..., "org.scala-js" %%% "scalajs-dom" % "0.9.1",...)
答案 0 :(得分:1)
您需要configure a JavaScript environment支持DOM,例如使用此sbt设置:
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
要求您单独安装jsdom
(通常使用npm install jsdom
)。