"TypeError: X is not a function" in scalatest test
"TypeError: X is not a function" in scalatest test
我正在使用 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",...)
您需要 configure a JavaScript environment 支持 DOM,例如使用此 sbt 设置:
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
这需要您单独安装 jsdom
(通常与 npm install jsdom
一起)。
我正在使用 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",...)
您需要 configure a JavaScript environment 支持 DOM,例如使用此 sbt 设置:
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
这需要您单独安装 jsdom
(通常与 npm install jsdom
一起)。