LoginSignup
1
1

More than 5 years have passed since last update.

Scala.jsの単体テストでURLへアクセスする

Posted at

Scala.jsメモ2つ目

環境

ソフトウェア バージョン
Scala 2.11.7
Scala.js 0.6.6

まとめ

  • Scala.jsの単体テストでは,URLにアクセスができない
  • Phantom.jsのコマンドライン引数の変更でアクセスできるようになる

やりたいこと

テストデータとして,外部のURL(localhostを含め)を使いたい.例えば,対応するWebサービスのサーバへアクセスしてデータを取ってきたりとか,.
しかし,単体テストでの外部URLアクセスはデフォルトで不可能となっている.

例えば,http://localhost:631(LinuxだとCUPSのクライアントがよく動いている)にjQueryを用いてリクエストを以下のように飛ばすと,いつまでもcallback関数が呼ばれない.

jQuery.get("http://localhost:631", null, (e: dom.Event) => {
  println("called!")
})

やったこと

参考にしたページURLをメモし忘れてしまったが,Stack Overflowだったかどこかのページによると,クロスドメインの類の問題らしい.なので,

scalaJSUseRhino in Global := false
jsEnv in Test := PhantomJSEnv(args = Seq("--web-security=no")).value

build.sbtに追記して,単体テストでPhantom.jsを利用し,さらにクロスドメインアクセスを許可するとcalled!と表示されるようになる.

おわりに

明らかにいい方法ではないので,もっといい方法があれば教えて下さい.そもそも,Scala.jsの単体テストはURLにアクセスするべきではなく,他に方法がある,とかも含めて教えて頂けたら嬉しいです.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1