Laravel Testing Decoded 日本語版
Laravel Testing Decoded 日本語版
待望のLaravel 4ユニットテスト解説本
本書について
(訳者注:この書籍の対象は、Laravel4.0です。 現行の4.2でも考え方の部分は利用できますが、Laravelを含め、紹介しているツール類の更新・進化もあり、本書通り動作しない部分が多くなっています。著者は新しいテストについての書籍を、この秋に出版するとつぶやきましたが、2015年1月に次期バージョンの5.0リリースが予定されており、変更点も多いため、たぶん新しいテスト本は大分遅れると思われます。)
何度も経験しました。アプリケーションが大きくなるにつれ、段々いい加減になり、テストしないソースコードも増えていくんです。そのうち、アプリケーションを手動でテストするのは現実的でなくなってきて、「無理だ!」という話しになります。そんな時こそ、自動テストが本当に必要なんだと、認識し始めるのです。もちろん、皆さんも過去にTDDに関する書籍を読んでいらっしゃるでしょう。しかし状況は多種多様で、突然やってくる素晴らしい幸福な瞬間、「ああ、そうだったのか」と理解できる時を味わうには、実際に試してみる経験が必要なのです。
テストにおける問題は唯一、技巧的に陥ってしまう可能性があることだけです。実際、今皆さんが取り掛かっているソースコードは、テストできない可能性が大きいでしょう! 皆さんがまだ実感していないのは、そうです、テストは自分のコードを期待通りに動かすのに役立ち、パターンに従えばより良い開発者になれることです。過去のプロジェクトではまった、ぐちゃぐちゃで、不安定なスパゲティーコードは、もう現れません。信じてください。すぐにあなたも、新しいコードを目の前にすると、微笑みを浮かべながら、「これはどうやったらテストできるかな」とつぶやき、過去の自分を振り返り、(荒っぽくて古い)カウボーイのようなやり方をしていたことを思い出し笑いだすでしょう。
近代的なソフトウェア開発へようこそ。
テストの原則(とTDD)は、言語に依存するものではありません。実践しようと思えば、様々なツールとテクニックに手が届きます。この本ではアプリケーションをテストするために、Laravelの手法を深く分析しつつ、可能な限りTDDについても紹介していきます。
(以上、Laravel Testing Decoded、日本語版本文より)
Laravel4を使用し、よくテストされた、Webアプリを構築したい開発者のために、PHPUnitを初め、Mockery、Codeceptionを使用し、ユニットテスト、結合(統合)テスト、受け入れテストを実施したい方向けの解説書です。対象は、実際にPHPでテストやTDDをどのように取り入れたら良いか迷っている方、Laravelのテスタビリティーに興味をお持ちの方、既にテスト駆動し開発している方々でLaravelでの適用知識を探していられる方です。
TDDが理想だが、実際に応用できない技術ではなく、行なってみれば楽しく、初めから誤りの少ないシステムを構築するには、必然であることを教えてくれます。
生涯に渡りアップデートは無料です。
購入された代金の10%はLaravelプロジェクト(Taylorさん)に寄付されます。
目次
-
日本語版前書き
- 日本語翻訳版について
-
ようこそ
- 始まったばかり
- この本はどんな人に役立つの?
- なぜLaravel限定なの?
- 演習
- 誤記
- この本を学び尽くす
- 連絡する
- 可能性に飛び込む
-
第1章 全てをテストする
- あなたは既にテストしている
- TDDから得られる6つのこと
- 何をテストすべきか?
- 不安定なコードの6つのサイン
- テスト関係の専門用語
- リラックス
-
第2章:PHPUnitの紹介
- インストール
- アサーション 110
- まとめ
-
第3章:PHPUnitの設定
- オプション
- XML設定ファイル
- 継続的テスト
- まとめ
-
第4章:PHPUnitのくどさを薄める
- アサーションを関数としてインポートする
- LaravelスタイルをPHPUnitに適用する
-
第5章:ユニットテスト110
- 我が苦闘
- ユニットテスト
- 準備、実行、断言
- 独立させてテストする
- テストは順番に依存してはならない
- テスト駆動開発
- 振る舞い駆動開発
- 関数をテストする
- クラスをテストする
- プロジェクトの完成
- まとめ
-
第6章:モデルをテストする
- 何をテストするのか
- アクセサー(ゲッター)とミューテーター(セッター)
- カスタムメソッド
- シンプルなクエリーテスト
- バリデーション
- ファクトリー
- Laravelテストヘルパー
- まとめ
-
第7章:Mockeryでテストを優しくする
- モックの解説
- インストール
- ジレンマ
- 解決策
- エクスペクティション(Expectation)
- パーシャル(部分的な)モック
- Hamcrest
- まとめ
-
第8章:データベースのテスト
- データベーステスト
- 環境を指定する
- テストからArtisanを呼び出す
- 実践してください
- メモリ上のデータベース
- まとめ
-
第9章:入れ替えましょう
- Mockery
- テスト
- まとめ
-
第10章:コントローラー
- コントローラーは何を行なっているか?
- コントローラーをテストする3ステップ
- コントローラーテストのHello World
- Laravelのヘルパーアサーション
- データベースをモックする
- リダイレクション
- パス
- リポジトリー
- 構造
- DOMクロール
- フォーム
- まとめ
-
第11章:IoCコンテナ
- 依存の注入?
- 解決
- Appバインド
- まとめ
-
第12章:テスト駆動Artisanコマンド演習
- コマンド110
- 演習
- まとめ
-
第13章:APIのテスト
- LaravelのAPI
- APIをテストする
- テストの例
- まとめ
-
第14章:Codeceptionによる受け入れテスト
- アミューズ・ブッシェ(食前のおつまみ)
- テストの気分転換
- インストール
- ブートストラップ
- 受け入れテストの設定
- テストを生成する
- まとめ
-
第15章:Codeceptionを使用した認証の実践
- 機能
- 機能をCodeception向けに変換する
- ルートの登録
- まとめ
-
第16章:Codeceptionでの機能テスト
- Laravel4モジュール
- TestGuyを更新する
- ユーザーを登録する
- まとめ
-
第17章:Travis CIで持続的インテグレーション
- Hello, Travis
- ビルド設定
- まとめ
-
よくある質問(生きているドキュメント)
- 1. グローバル関数はどうやってテストするのでしょうか?
- 2. Codeceptionのテストのため、どうやってSQLダンプを生成するのか?
- 3. Protectedメソッドはどうテストするのか?
- 4. ゲッターやセッターもテストすべきか?
- 5. どうしてPHPUnitは、フィルターを無視するのでしょうか?
- 6. テストしているクラスのメソッドをモックにできますか?
- 7. テスト名に下線を入れるのが好きなんです。それでも良いですか?
-
最後に
- ちょっと待ってください…
-
追補:Mockery
- モックオブジェクト
- 動作要件
- インストール
- 0.8.*へのアップデート
- シンプルなサンプル
- PHPUnit統合
- クイックリファレンス
- 期待値条件の宣言
- 引数のバリデーション
- パーシャルモックを作成する
- モックオブジェクトの検出
- デフォルトモック期待値条件
- パブリックなプロパティーのモック
- public staticメソッドのモック
- インスタンス化時にモックオブジェクトを生成する(インスタンス化モック)
- メソッドの参照渡し引数の動作を妨げる
- デメテルチェーンと流れるようなインターフェイス
- Mockery例外
- モックオブジェクトの記録
- Finalクラス/メソッドの取り扱い
- Mockeryグローバル設定
- 予約メソッド名
- PHPマジックメソッド
- なるほど!(了解事項)
- クイックサンプル
- Mockery ライセンス
- 追記
Leanpubは無条件かつノーリスクで100%の満足を保証します
Leanpubでお買い上げいただいた書籍は、ご購入後60日以内であれば全額返金いたします。払い戻しはわずか2クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。
10ドルの購入で8ドル、20ドルの購入で16ドルを稼ぐ
私たちは7.99ドル以上の購入で80%のロイヤリティを支払い、0.99ドルから7.98ドルの購入には80%のロイヤリティから50セントの定額料金を差し引いた金額を支払います。10ドルの販売で8ドル、20ドルの販売で16ドルを稼ぐことができます。したがって、20ドルで本を5000冊売却し、返金されなかった場合、80,000ドルを稼ぐことができます。
(はい、すでにLeanpubでそれ以上の収益を上げた著者もいます。)
実際に著者はLeanpubで1,300万ドル以上を書き、出版し、販売して稼いでいます。
Leanpubでの執筆について詳しく知る
無料更新。無料アップデート。 DRMフリー。
Leanpubの本を購入すると、著者が本を更新している限り、無料で更新されます!多くの著者は、Leanpubを使用して、執筆中の書籍を出版しています。いつ本を購入したか、いくら支払ったかに関係なく、すべての読者は無料のアップデートを入手できます(無料も含む)。
Leanpubの本はPDF(コンピューター用)、EPUB(iPad用)、MOBI(Kindle用)のフォーマットに対応してます。本に含まれるフォーマットは、このページの右上隅に表示されます。
Leanpubの本には、DRMコピー防止のナンセンスがないため、サポートされているデバイスで簡単に読むことができます