true;});自動化されたユニットテストにおいて、テスト対象オブジェクトが呼び出し先のオブジェクトと意図したとおりに協調動作するかどうかを検証するために、呼び出し相手に換えて使用するテスト用のオブジェクトのこと。オブジェクト指向に基づいて作られたソフトウェアは、オブジェクト同士が相互作用を持つ。ビジネスアプリケーションの場合、外部データベースやWebサービスへのアクセスを行うことも多い。このようなソフトウェアをテストするとき、依存関係にある相手が未実装だったり、テスト環境からは接続不可だったりすると、システムが実行できないため、テストも不可となる。したとき、いかにも本来の連携相手であるかのように振る舞う仮のオブジェクトを使ってテストを行う方法がある。このときに使われる疑似的な仮実装を「モックオブジェクト」という。モックオブジェクトはテスト対象がコード内部で使用している呼び出し先と同じインターフェイスを持ち外からは正しく動くように見えるが、内部ロジックは実装されておらず引数の検証とテストに必要な最低限の出力のみを行う。モックオブジェクトが未実装のクラスの振る舞いをまねることで、それに依存するクラス(開発中のクラス)の振る舞いを検証することができる。モックオブジェクトはテスト駆動開発におけるテクニックとして提唱された。テスト駆動開発におけるテストの基本はメソッドの振る舞いを設計・検証することだが、詳細設計(構造)だけではなく外部設計(機能)も考慮すれば、オブジェクトの振る舞いも定義・評価する必要がある。モックオブジェクトを定義する作業は、実装中のオブジェクトが参照しているオブジェクトやメソッドの機能設計を行うことと事実上同義である。この設計はオブジェクトが相互にどのようなやり取りを行っているか、という観点で行われる。この点でモックオブジェクトは、機能や振る舞いを中心に概要設計を行い、内部設計や実装は時間を掛けてリファクタリングするというテスト駆動開発を補完するものである。今日、ほとんどの言語にモックオブジェクトのフレームワークがあり、広く利用されている。これらのフレームワークでは、エクスペクテーション(期待される呼び出され方と、そのときの挙動)を設定することでモックオブジェクトの振る舞いを定義し、テスト対象オブジェクトからの呼び出しを記録して、エクスペクテーションどおりに呼び出されているかを検証する機能を提供する。称して情報を盗む「ご注意!!OFFICEのプロダクトキーが不正コピーされています。Japanスマートジャパン3Dモデラボキャリア@IT自分戦略研究所エンジニアライフディルバートアプリITmediaねとらぼねこらぼついトピ!ITmediaはアイティメディア株式会社の登録商標です。