6

私は自分のアプリの 1 つにコア アーキテクチャのアイデアの 1 つとして訪問者を導入しました。同じものを操作する訪問者が何人かいます。さて、どのようにテストすればよいでしょうか?私が考えているいくつかのテストは、単体テスト(統合テストなど)よりも少し大きいですが、それでもやりたいと思っています。訪問者パターンの wiki アートの C++ サンプルのようなコードをどのようにテストしますか?

4

3 に答える 3

4

単体テストは実際にはパターンをテストすることではなく、メソッドと関数の正しい実装をテストすることです。ビジター パターンは特定のクラス構造であり、関連するクラス (具体的には ConcreteVisitor と ConcreteElement) ごとに単体テストが必要になります。

クラス メソッドが正常に動作しているという確信が持てたら、単体テスト フレームワークを使用して統合テストを開発することもできます。すぐに統合テストを開始しないでください。特定のクラスの動作を実際にテストする統合テスト、つまり単体テストを多数開発していることに気付くでしょう。

モック オブジェクトが必要か、「実際の」オブジェクトを使用できるかは別問題です。これは、オブジェクトが単体テストの目的で十分に適切に動作するかどうか (つまり、多くの追加の依存関係を取り込まないなど)、およびオブジェクト自体が単体テストされているかどうか (つまり、これらのオブジェクトを信頼できる必要があるかどうか) に大きく依存します。 100%)。モックと実際のオブジェクトの問題は、以前にスタックフローで対処されているため、unittest タグを検索してください。

于 2008-10-28T22:16:17.443 に答える
2

テスト用の訪問者オブジェクトを作成し、それを訪問させます....それが正しいものを訪問したことをテストします。

于 2008-10-28T21:02:18.373 に答える
2

モック オブジェクトを作成して訪問者を訪問させてから、モック ビジターを作成して、正しいアクションが実行されたことをテストできます。

于 2008-10-28T21:05:07.027 に答える