技術書典5(tbf05)頒布物サポートページ
『ファイル処理スクリプトをJavaScript/TypeScriptでTDDする』
〜Sinon.jsでAPIのスタブ作成〜
※本ページは、右記の本のサポートページとなります。
※技術書典5(2018/10/08)「き24」にて委託頒布させていただきました。
※製本版の在庫は、COMIC ZINさんで委託頒布いたしております。
※技術書典5の公式サイトと、委託先のサークル「Clear-mint」さんのページは下記となります。
https://techbookfest.org/event/tbf05
https://techbookfest.org/event/tbf05/circle/28740001
サンプルはこちら
PDF版 [300円]:
BOOTH様
で取り扱い中(要、pixivアカウント)。
製本版 [432円]:
COMIC ZIN様
で取り扱い中。
内容は同一で、本文48Pで税込です。
頒布物について
次の2つを目的とした本です。
* ファイル処理の自動化JavaScriptスクリプトを題材に、テスト駆動開発しよう!
* せっかくなのでTypeScriptでのテスト書き方もやってみよう!
本書では、次のようにして「テスト駆動開発」を進めます。
1. 初めて使うモジュール(本書ではfsとする)のAPI挙動をテストコードで確認する。
2. (本書ではファイルシステムへのI/Oの)APIをスタブ化してテストコードを書く。
3. 機能の追加を、テストコード側に先に「(期待する)仕様」を記載して検討する。
4. 機能を実装して、テストをパスさせる。
その後に、次のようにして「TypeScript」を始めてみます。
1. TypeScriptで「Hello world」する。
2. Mochaテストを、先のコードをなぞって書く。
3. TypeScriptコードからJavaScrip(Node.js)へのコンパイルとテストの実行を楽にする。
4. 機能を実装して、テストのパスさせる。
本書では「Mocha+Chai+Sinonでテストを作成」します。
よくあるテストコードのサンプル「1+1=2」では【なく】、
「ファイルシステムへのI/Oするfsモジュールをスタブ化するには?検証するには?」を
具体的なテストコードのサンプルを用いて説明します。
§1−1:最小限のテストコードを動かそう(環境を作ろう)
サンプルコード一式(リスト1.1〜1.2 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev11-justframe-only
GitHubへブラウザでアクセスし、右側にある「Clone or download」ボタンから 「Download ZIP」で取得できます。 もちろん、GitリポジトリとしてCloneしていただいても構いません。
§1−2:初めて触れるAPI の挙動を探ってみる
サンプルコード一式(リスト1.4〜1.6 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev12-api-actual
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev13-api-assertion
§1−3:外部環境依存のAPI をスタブ化する
サンプルコード一式(リスト1.16〜1.17 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev14-api-stub
§1−4:様々なケースを追加して仕様を固めていく
サンプルコード一式(リスト1.16〜1.17 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev15-api-stub2
§1−5:リファクタリングと改良について
サンプルコード一式(リスト1.19 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev16-refactoring
§1−6:テストコード先行で機能を追加する(読み取ったCSV ファイルの比較)
サンプルコード一式(リスト1.20〜1.22 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev17-add-function
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev18-add-functoin-mistake
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev18-add-function-ok
§2−2:TypeScript 向けのMocha テスト環境を導入する
サンプルコード一式(リスト2.3〜2.7 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev21-hello-typescript-mocha
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev22-ts-node-mocha
§2−3:テストコードを追加する
サンプルコード一式(リスト2.8〜2.9 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev23-ts-sinon
§2−4:被テストのコードを実装する
サンプルコード一式(リスト2.10 )
ソースコードの取得(GitHub)
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev24-impl-listup
§2−5:実際の環境でも実行してみる
サンプルコード一式(リスト2.11 )
ソースコードの取得(GitHub)
※コードは、§2−4と同一です。
https://github.com/hoshimado/tbf05-tddfs-ts/tree/dev24-impl-listup
頒布物のサンプル
サンプルページは以下のなります。
(クリックで拡大)
(中略)
(中略)