はじめに
第1章 Vue.jsのCDN版からVue CLI版へ移行
第2章 Vue CLIでテスト駆動開発する(TDD)
第3章 ExpressによるWebAPIサーバーをテスト駆動開発する(TDD)
第4章 フロントエンドVue.jsとバックエンドExpressを接続してAzureにDeployする
付録A 詳しくて細かいこと
付録B ExpressフレームワークのAzure向け導入方法
付録C Azureポータルでの「Webアプリ」インスタンスの作成方法
付録D Azureポータルで「Webアプリ」へのソースファイルの紐づけ方法
付録E 参考書籍、参考サイト
あとがき
本書は、次の人を対象とします。
・Vue.jsは「ブラウザーでCDN版を使ったことがある」人
・Node.jsは「簡単なREST APIサーバーを作成したことがある」人
・テスト駆動開発で「レッド→グリーン→リファクタリング、のサイクルをしたことがある」人
本書に記載の内容はそれぞれのフレームワークの公式ページや書籍などで参照することが可能ですが、探し出す手間や渡り歩く手間を省くことを、本書では目的とします。なお、Vue CLIを利用済みの方にはおそらく既知の内容となります。
次のスタート地点から必要最低限だけをつまみ食いで学んで、次のゴール地点を目指します。
・スタート:「Vue.jsでもテスト駆動開発(TDD)したい!けど、Vue CLIが分からない。Babelとwebpackを知らないので手が出ない」
・経由:「REST APIをExpressで実装するけど、そちらもテスト駆動開発したい」
・ゴール:「Vue.jsで必要なBabelとwebpackは最低限の部分を使えるようになった!Vue CLIでなんとかTDD出来た!」
Vue.jsは簡単に手を出せて、必要な範囲だけ学んだらすぐに「実際に作ってみる」が出来て良いですよね。ところで、Vue.jsでもテスト駆動開発をしたいと思いませんか?Vue.jsのCDN版はブラウザーで動作するので、外部ファイルのローカライズ化は困難です。なので、機能ごとにファイルに切り出して機能を検証していくことが多いテスト駆動開発(TDD)の適用は、そのままでは容易ではありません。この困難はVue CLIを利用することで乗り越えることが出来ます。Vue CLIは、「Node.js上でES2015(ES6)にて書いて、ブラウザーで表示するときだけES5に変換しましょう(トランスパイル)」というフレームワークです12。
本書では、ブラウザーだけで動作の完結するCDN版からVue CLI版に移行するときに、どのように対応付けて移行すればよいか?を最初に説明します。次にVue CLIでのテストを実行する方法を、続いてVueファイルのUIを省いてロジック部分にのみ注目することで、javascript部分だけをより高速に軽量にテストを実行する方法も説明します。サンプルプログラムとして、ToDoアプリのフロントエンドとバックエンドの双方をテスト駆動開発で作成し、Azureにて公開します。その過程で必要となる次の項目について、今回の目的の達成に必要な最低限の範囲で説明します。
本書で解説することは以下の通りです。
・Vue CLI 3.x のvueファイルへ、HTMLとjavascript、CSSを配置する方法
・Vue CLI 3.x の標準のUnitTest(Mocha+Chai)3の使い方
・Vue CLI 3.x にて、外部javascriptファイルのみをMochaでテストする方法
─webpack設定の変更方法
─Babel設定の変更方法
・Vue CLI 3.x でのfontawesomeの使い方
・Vue CLI 3.x でのSinon.jsの使い方
・ExpressでのHTTPリクエストをMochaでテストする方法
・ローカル検証時に、ExpressサーバーとVue CLIサーバーを同時に稼働させる方法
・AzureのWep Appへそのまま公開出来る構成でのWebアプリ作成方法
・Azureポータルでの、Web Appを公開するための操作方法
本書で解説しないことは次です。
・Vue.jsのデータバインディングの使い方
・Vue-Routerの使い方
・ES2015(ES6)の書き方、ES5との違い
・Mocha.js、Chai.js、Sinon.jsそのものの使い方
・テスト駆動開発とは?
・REST APIとは?
・Webアプリの設計方法そのもの
・Azureアカウントの取得方法
本書でのサンプルの記載は、多くの場合はキーとなるコード部分の抜粋となります。サンプルコードの全体は以下のサポートページにて公開しています。実際に動作確認を行う際には、こちらのソースコードを利用してください。
https://github.com/hoshimado/tdd-vuejs-book/
・OS : Windows 10
・Node.js : v8.11.3 / v10.16.0
・fontawesome : v5.6.1
・express@4.17.1
・express-generator@4.16.1
・@vue/cli@3.11.0
・axios@0.19.0
・sqlite3@4.0.9
・mocha@6.2.0
・chai@4.2.0
・sinon@7.4.2
・promise-test-helper@0.2.1
・cross-env@5.2.1
・@babel/register@7.6.0
本章中のスクリーンショットや利用ライブラリのバージョンは、2019/12/01現在のものです。その後に変更されている場合があります。
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書籍は、技術系同人誌即売会「技術書典」で頒布されたものを底本としています。