私はXMLHttpRequestオブジェクトを作成する必要があるscalatestを使用してscala.jsテストを作成しています。私は次のエラーを受け取り、理由を理解できません。スカラーテストで "TypeError:Xは関数ではありません"
[info] scala.scalajs.js.JavaScriptException: TypeError: $g.XMLHttpRequest is not a function
私はまで失敗テストを削減しました:私は私のメインプログラムにライン val xhr = new XMLHttpRequest()
を成功裏に含めましたし、それが正常に動作
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
}
}
}
。
これを引き起こすテスト環境については何が変ですか?
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
(通常npm install jsdom
付き)別途jsdom
をインストールする必要があります:
build.sbtは、あなたがこのSBT設定で、たとえば、DOMをサポートしていますconfigure a JavaScript environmentに必要 libraryDependencies ++= Seq(..., "org.scala-js" %%% "scalajs-dom" % "0.9.1",...)
私はあなたのテスト環境がダウンしていると思われます。ほとんどのJSテスト環境にはデフォルトでDOMが含まれていません。私はそれがあなたの誤りを説明すると信じています。 libraryDependenciesエントリはScala.jsにXMLHttpRequestが存在することを期待していますが、実際にあなたが実行している環境に存在しない場合は役に立ちません。 –