1
1

More than 5 years have passed since last update.

Scala.jsでローカルにあるファイルをテストに利用する

Posted at

Scala.jsメモ4つ目

環境

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

目的

Scala.jsでクライアント側の処理を書いている時,ローカルにあるファイルをテストに使いたいと思った.
本来データはWebサーバから取得するのだけど,テストのたびに本番サーバにアクセスする訳には行かない,真面目なテスティングサーバを用意するのは面倒でやりたくない,といった感じの状況.

そこで,src/test/resources/にhtmlファイル等を置き,そこへアクセスする事で,テストを書きつつ本番サーバへのアクセスをなくす,という戦略を考えた.

sbt-httpserver プラグイン

調べたら具合の良いプラグイン(sbt-httpserver)が見つかったので試してみた.まず,plugins.sbt

/* sbt-httpserver */
resolvers ++= Seq(
  Resolver.url("wav", url("https://dl.bintray.com/wav/maven"))(Resolver.ivyStylePatterns),
  "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases") // scalaz-stream
addSbtPlugin("wav.devtools" % "sbt-httpserver" % "0.3.1")

と書いてpluginを追加し,build.sbtに以下のように書くと,

import wav.devtools.sbt.httpserver.{SbtHttpServerPlugin,FileServer}
import SbtHttpServerPlugin.autoImport._

enablePlugins(SbtHttpServerPlugin)
addHttpServices(
  _ += FileServer.service("test", (resourceDirectories in Test).value)
)

sbt起動中,http://localhost:8083/test/以下にアクセスする事で,リソースファイル(デフォルトではsrc/test/resources/以下)へアクセスできる.

これで当初目的は大凡達成できたが,ファイルサーバとしての設定記述をしたので,postメソッドが利用できないのは問題として残っている.実際に処理をするのではなく,想定されているフロー通りに動くモックがあればいいので,是非どうにかしたい.

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