かなり複雑だが MVC を利用するアプリケーションをレトロスペクティブに単体テストしようとしています。レトロスペクティブに単体テストを適用するのは理想的ではないことはわかっていますが、既存のコードをリファクタリングすることで可能だと信じています。ほとんどの場合、他のユニットに依存せずに 1 つのユニットを単体テストすることはできません。つまり、ビューはモデルに依存しています。
この場合、単体テストを行う最良の方法は何ですか? 実機を流用するのと模擬モデルを作るのとではどちらが良いでしょうか?
私の状況で実際のモデルを利用する際の問題は、モデルが XML からデータを取得する他の応答クラスに依存しているため、依存の連鎖が生じることです。このモデルには多くのデータがあるため、これを使用する方がはるかに簡単ですが、要点を見逃している可能性があります。
簡潔にするために、アプリケーションの UML を提供しました。
**編集 ****
私が正しければ、モッククラス内にモックデータを作成するのがベストプラクティスですか? たとえば、ビュー クラス「PlaylistPanel」をエラーなしで実行するために必要なデータを作成するモック クラス「MockPlaylistPanelModel」があります。
class MockPlaylistPanelModel extends Mock implements IPlaylistPanelModel
{
/**
* Return all playlist items
* @public
*/
public function get mainPlaylistItems():Vector.<PlaylistData>
{
var playData:Vector.<PlaylistData> = new Vector.<PlaylistData>;
var playlistResp:PlaylistData = new PlaylistData(0, "", "", 0, 0, 0, 0);
playData.push(playlistResp);
return playData;
}
}