私はリポジトリを書いています。オブジェクトのフェッチは、DAO を通じて行われます。オブジェクトの作成と更新は、RequestHandler オブジェクトに渡される Request オブジェクトを介して行われます (コマンド パターンのように)。DAO、Request、または RequestHandler を作成していないため、変更できません。
このリポジトリのテストを作成しようとしています。DAO と RequestHandler の両方をモックアウトしました。私の目標は、モックされた RequestHandler が、新しいオブジェクトまたは更新されたオブジェクトをモックされた DAO に単純に追加することです。これにより、DB と話しているような錯覚が生まれます。このように、このリポジトリを呼び出すすべてのクラスのリポジトリをモックする必要はありません。
問題は、Request オブジェクトが文字列の塊とさまざまな英数字コードの塊であることです。XMLも関係していると確信しています。それは一種の混乱です。別の開発者が、格納されているオブジェクトに基づいて Request オブジェクトを作成するコードを作成しています。また、RequestHandler は、保存しているオブジェクトではなくリクエストを受け取るため、モックされた DAO を更新できません。
問題は、リクエストもモックするか、それとも遅い人がコードを書き終えるまで待ってからテストを書くべきかということです。それとも、リポジトリを呼び出すクラスをテストするときに、それを台無しにしてリポジトリ全体をモックアウトしますか?
ところで、「モック」とは NMock の意味ではなく、メモリ内コレクションで DB を偽造するようなものです。