スキップしてメイン コンテンツに移動

TDJSD

テスト駆動JavaScript『テスト駆動JavaScript』を読んだ。

この本は次の4部から構成されている。
  • 第1部 テスト駆動開発
  • 第2部 プログラムのためのJavaScript
  • 第3部 JavaScriptテスト駆動開発の実際
  • 第4部 テストのパターン
第1部は、テストランナーのトイプログラムを作りながらテスト駆動開発(以降、TDD)を紹介している。第2部は、TDDとは関係なく、JavaScriptの特徴(関数もオブジェクトであることやその応用など)を解説している。第3部で、第1, 2部の内容を応用して、順を追ってTDDを薦めていく。第4部は、テストに関するパターンの紹介。著者が開発するモックライブラリSinon.JSの紹介もここ。

変遷の速いJavaScriptにおいて、2011年 (原著 "Test Driven JavaScript Development"なら2010年) に発売された本だけれど、内容が古くなっていないかな? という心配は杞憂だった(冷静に考えると、自分が最先端にいるはずもない)。

特に、第4部の内容はJavaScriptに限らず、テストのコーディングに応用できる話。テストメソッドの名前の付け方、ふるまいの記述としてのテストの書き方、テスト自体に入り込むバグへの対策について、指針を与えてくれる。

一方で、具体的なコードの例にも事欠かない。こちらはさすにが変更が入っているけれど、JsTestDriverとSinon.JSを組み合わせてテストを書くためのとっかかりとしては十分だったと思う。実際に、JsTestDriverやSinon.JSのドキュメントも参照しつつ、サンプルを書くことができた。その過程で調べたことは、Mirror House Labの次のエントリーにまとめている。
  1. JsTestDriverでUnit Test + Code Coverage
  2. JsTestDriverでテストケースを書く
  3. Sinon.JSのテストダブルを使ったユニットテスト
ところで、こうしてJavaScriptを勉強していると、自由度が高いと思う。型チェックが効かないから、気がつかないうちに、おかしなオブジェクトを引数に渡していたりする。自分が一番よく使う言語はJavaだから、型安全に書けないと不安になる。そういう意味では、TypeScriptが開発されたのもさもありなんと思う。

型が生まれた経緯なんかについては、きっと『コーディングを支える技術』『型システム入門』が詳しいんだろうな、と思う。これらも読みたい。

一方で、Javaで書かれているからって型が有効に使われているとは限らないように、テストフレームワークができたからって簡単にテストできるようになるわけじゃない。この本のいう通りだ。
テストすることを考えずに作られたアプリケーションにあとからテストスイーツを追加しようとするとわかるが、そのようなアプリケーションの一部は、テストが不可能でなくても、容易ではない。
こちらの方面も掘り下げて、『レガシーコード改善ガイド』も読みたいのだけれど、うーん、今少し時間と予算をいただきたい。

このブログの人気の投稿

北へ - ゴールデンカムイ 16

『ゴールデンカムイ 15』、『〃 16』を読んだ。16巻を読み始めてから、15巻を買ったものの読んでいなかったことに気がつく。Kindle版の予約注文ではままあること。 15巻は「スチェンカ・ナ・スチェンク」、「バーニャ(ロシア式蒸し風呂)」と男臭いことこのうえなし。軽くWebで調べてみたところ、スチェンカ・ナ・スチェンク (Стенка на стенку) はロシアの祭事マースレニツァで行われる行事のようだ[1]。それなりになじみ深いものらしく、この行事をタイトルに据えたフォークメタルStenka Na StenkuのMVが見つかった。 16巻では杉元一行は巡業中のサーカスに参加することになる。杉元と鯉登の維持の張り合いが、見ていて微笑ましい。鯉登は目的を見失っているようだが、杉元もスチェンカで我を失っていたので、どっこいどっこいか。なお、サーカス/大道芸を通じた日露のつながりは、実際にもこのような形だったようだ[2]。 個々のエピソードから視線を上げて、全体の構図を眺めてみると、各勢力がすっかり入り乱れている。アシㇼパは尾形、キロランケ、白石とともにアチャの足跡を辿り、そのあとを鶴見のもとで家永の治療を受けた杉元が鯉登、月島を追っている。今更だけれど、杉元やアシㇼパは、第七師団と完全に利害が衝突していると考えていないはずだった。一方で、土方一味も入墨人皮を継続。むしろ彼らの方が第七師団との対立が深刻だろう。さらに北上するキロランケはまた別の目的で動いているようだけれど、なんで尾形も一緒なんだっけ? 『進撃の巨人』に引き続き、これもそろそろ読み返す時期か。 [1] 5つの暴力的な伝統:スラヴ戦士のようにマースレニツァを祝おう - ロシア・ビヨンド [2] ボリショイサーカスの源流は、ロシアに渡った幕末日本の大道芸人たちにあった 脈々と息づく「クールジャパン」 | ハフポスト

戦う泡沫 - 終末なにしてますか? もう一度だけ、会えますか? #06, #07

『終末なにしてますか? もう一度だけ、会えますか?』の#06, #07を読んだ。 『終末なにしてますか? もう一度だけ、会えますか?』の#06と#07を読んだ。#06でフェオドールの物語がひとまずは決着して、#07から第二部開始といったところ。 これまでの彼の戦いが通過点のように見えてしまったのがちょっと悲しい。もしも#07がシリーズ3作目の#01になっていたら、もう少し違って見えたかもしれない。物語の外にある枠組みが与える影響は、決して小さくない。 一方で純粋に物語に抱く感情なんてあるんだろうか? とも思う。浮かび上がる感情には周辺情報が引き起こす雑念が内包されていて、やがて損なわれてしまうことになっているのかもしれない。黄金妖精 (レプラカーン) の人格が前世のそれに侵食されていくように。

リアル・シリアル・ソシアル - アイム・ノット・シリアルキラー

『アイム・ノット・シリアルキラー』(原題 "I Am Not a Serial Killer")を見た。 いい意味で期待を裏切ってくれて、悪くなかった。最初はちょっと反応に困るったけれど、それも含めて嫌いじゃない。傑作・良作の類いではないだろうけれど、主人公ジョンに味がある。 この期待の裏切り方に腹を立てる人もいるだろう。でも、万人受けするつもりがない作品が出てくるのって、豊かでいいよね(受け付けないときは本当に受け付けないけれど)。何が出てくるかわからない楽しみがある。