2014年12月09日にヒカ☆ラボに登壇された株式会社インテリジェンスの清田氏のスライド資料です。Read less
PHPUnit の目指すところのひとつに 「自由に組み合わせられる」ということがあります。つまり、 例えば「そのプロジェクトのすべてのテストを実行する」「プロジェクトの中の ある部品を構成するすべてのクラスについて、すべてのテストを実行する」 「特定のひとつのクラスのテストのみを実行する」など、 数や組み合わせにとらわれずに好きなテストを一緒に実行できるということです。 PHPUnit では、さまざまな方法でテストを組み合わせてテストスイートにまとめることができます。 本章では、その中でもよく使われる手法を説明します。 おそらく、テストスイートをとりまとめるもっとも簡単な方法は すべてのテストケースのソースファイルを一つのテストディレクトリにまとめることでしょう。 PHPUnit はテストディレクトリを再帰的に探索し、 テストを自動的に見つけて実行します。 sebastianbergman
「はじめに」の「はじめに」 2016年版としてマイグレーションしました。 特にこだわりが無い場合は、こちらを参照してください。 はじめに こんな感じで資料を作ろうとしていた草稿です。 文中のソースコードの正誤とかは見きれていません。 ツッコミとか有れば、よろしくお願いしますm( _ _ )m PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。 テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。 極論を言うと 「どんなクラスでも疎結合に実装していなければならない」 ということで
エンジニア(プログラマー)をやっていると基本的には徐々にレベルアップしていきます。 しかしある点で閾値を越えて、レベルが一気に上がると感じる瞬間があります。 皆さんどうでしょうか? 自分の場合は クラスメソッドとインスタンスメソッドの違いをはっきり理解したことがそのきっかけでした。 これまでぼんやりとモデルにメソッドを追加していたものがかなり自信を持ってメソッドを追加出来るようになりました。 今回はクラスメソッドとインスタンスメソッドの違いを簡単に紹介して、他にも初級者から中級者に上がるようなパターンを考えてみたいと思います。 クラスメソッドとインスタンスメソッドの違い 本当にその名の通りなんですが、 クラス全体で使えるのがクラスメソッド あるクラスのインスタンスで使えるのがインスタンスメソッド 具体例を書くと、rubyでは class Dog #クラスメソッド def self.chog
2015-03-30 JavaScriptのテスト環境の参考URLメモ(2015-03時点) JavaScript TDD JavaScriptのテスト環境、テストライブラリってどうなってるのか、参考URLをまとめてみました。 結論:ライブラリが数種類あり、それぞれがどこのレイヤーをカバーするのか異なる。そのため、組み合わせはもとより出力形式、CI環境との連携、なにをどこまでテストするのか、開発者のスキル、アプリケーションのライフサイクルなど多数のパラメータのバランシングが必要となる。ライフサイクルの短い使い捨てなら、バランシングのためのコストも無視して「えいやっ」で決めても良いが、そもそもテスト環境の整備が必要なプロジェクトであれば、ライフサイクルもそれなりの規模が想定される。技術者の自己満足や、流行り廃りに焦って拙速な判断を下さないよう厳重な注意が必要とされるだろう。数年後、流行り廃り
2020-07-01 ZOZOTOWNのインハウス広告運用を支援するデータと仕組みの話 BigQuery データ マーケティング 広告 本記事では、ZOZOのマーケティング部門の広告運用のインハウス化に伴って、これまで取り組んできた広告データの収集と活用、その仕組みにフォーカスして事例をご紹介します。 ZOZOTOWNのインハウス広告運用を支援するデータと仕組みの話 2020-06-29 【オンラインMeetup イベントレポート】ZOZOテクノロジーズの大規模データ活用 イベントレポート GCP Elasticsearch 検索 機械学習 こんにちは、ZOZOテクノロジーズ CTO室の池田(@ikenyal)です。 ZOZOテクノロジーズでは、6/22にZOZO Technologies Meetup -ZOZOテクノロジーズの大規模データ活用-を開催しました。 zozotech-inc
PHPUnitの設定 続いて、PHPUnitからAspectMockを使うための設定をします。まず、backupGlobalsを必ずfalseにします。 phpunit.xml <phpunit bootstrap="bootstrap.php" backupGlobals="false"> そして、tearDown()メソッドで登録したテストダブルを削除するようにします。 TestCase <?php use AspectMock\Test as test; abstract class TestCase extends \PHPUnit_Framework_TestCase { protected function tearDown() { test::clean(); // 登録したテストダブルを削除 } } AspectMockの使い方 それでは、AspectMockの使い方を見て
はじめまして、室内ならTシャツで問題ない技術推進室の篠崎です。 先日、piccaglianiさんのブログでAspectMockを知りました。 ちょうど私が対応しようとしていた課題にぴったしのフレームワークだったので少し書かせていただきます。 昔からあるコード弊社では以下のようなコードがまだまだいらっしゃいます。(実際はこんな少ない行数ではありません) がっつしArticle_Query、Apiクラスに依存している状態です。 私が対応しようとしていた課題は「このような昔からあるテストのないコード、いわゆるレガシーコードに対してユニットテスト(PHPUnit)を作成していく」でした。 ※そしてリファクタリングへ ユニットテストで何を確認したいのか?ユニットテストで確認したいのはSample_ServiceクラスのgetAllArticlesメソッドの処理です。 Article_Query::f
FuelPHP Advent Calendar 2013の9日目です。昨日は、@sa2yasuさんの「FuelPHPを更に使ってみて使えるなと思った拡張ValidationRuleの書き方とCore拡張の小技」でした。 今日は、いま話題のAspectMockをFuelPHPで使い、FuelPHPのアプリを100%テストできないかというお話です。 ちなみに、本当に100%テストできるかどうかはまだ定かではありません。あと、カバー率を100%にすること自体は目的ではないので、あまり気にする必要はないと思います。 "Testability" should not be used as argument deciding what design pattern is right to use and what is not. 訳:どのデザインパターンが適切か否かという論拠に、「テスト可能性」が使わ
TAP(Test Anything Protocol)とは、テストを簡潔に記述するための書き方(プロトコル)のことです。 プロトコルというと難しそうですが、実際はとても簡単。標準出力に、以下のような出力を行うプログラムを作成すればよいのです。 1..4 ok 1 - Input file opened not ok 2 - First line of the input valid ok 3 - Read the rest of the file not ok 4 - Summarized correctly # TODO Not written yet 要点は (1) 最初の行に、テストの件数を表示する (2) 2行目以降に、テスト結果(ok/not ok)・テスト番号・説明を表示する 以上。 なお、2行目以降の必須項目はテスト結果(ok/not ok)だけです。 テスト番号は無くてもエ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く