【发布时间】:2017-08-23 18:43:55
【问题描述】:
我正在使用 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",...)
【问题讨论】:
-
我怀疑这取决于您的测试环境——大多数 JS 测试环境默认不包含 DOM。我相信这可以解释你的错误。 libraryDependencies 条目告诉 Scala.js expect XMLHttpRequest 存在,但如果它真的不存在于您正在执行的环境中,这将无济于事......
标签: scala.js