0

任意のユーザー コード メソッド (リフレクションによって動的に読み込まれる)のMethodInfoオブジェクトを受け取るメソッドをユニット テスする必要があります。

public string SomeMethod(MethodInfo methodInfo);

さまざまなMethodInfoオブジェクトを使用して、このメソッドを実行したいと思います。

最も簡単な方法は、 を使用してMethodInfo<type>.GetMethod("name")オブジェクトを取得し、それを使用してテスト済みのメソッドを呼び出し、結果に対してアサートすることです。

できるだけ多くの「異なる」メソッド情報 (より具体的には、渡されるできるだけ多くの異なるメソッド) について説明したいと思います。

私は2つのアプローチを検討していますが、これがどのように行われるべきかはわかりません:

  1. 必要なすべてのメソッドを含む新しいテスト クラスを作成します。この型の GetMethods() を使用し、それらを繰り返して、テスト済みのメソッドにフィードします。

  2. メソッドごとに個別の単体テストを作成します。

最初のオプションは拡張 (テスト クラスに新しいメソッドを追加する) が簡単ですが、複数のアサートが含まれます (それが持つ各 MethodInfo インスタンスに対してアサートします)。

この問題を簡単に解決し、この特定のシナリオに対して堅牢なテストを作成するにはどうすればよいでしょうか?

4

1 に答える 1

1

必要なすべてのメソッドを含む新しいテスト クラスを作成します。この型の GetMethods() を使用し、それらを繰り返して、テスト済みのメソッドにフィードします。

(この MethodInfo を処理する)のロジックSomeMethodに、すべての種類の MethodInfo を処理する汎用ロジックがある場合は、上記のルートに従います。

メソッドごとに個別の単体テストを作成します。

のロジックにSomeMethod、さまざまな種類の MethodInfo に対するケースバイケースのロジックがある場合は、上記のルートに従います。

于 2012-08-02T22:38:39.617 に答える