1

外部プロセス (制御外) によってホストされ、実行時にロードされるように設計された .Net クラス ライブラリ アセンブリ内のクラスに対して、いくつかの NUnit ユニット テストを実行したいと考えています。

テストしたいクラスは、ホスト プロセス内でインスタンス化する必要があるホスト exe 内で定義されたクラスから派生しています。ホスト プロセスの外部で基本クラスの派生をインスタンス化しようとすると、例外が発生して失敗します。

したがって、単にアセンブリをロードしてクラスをインスタンス化するだけでは、NUnit GUI またはコンソール テスト ホストでクラスをテストすることはできません。これらのテストを実行する方法について何か提案はありますか?

4

2 に答える 2

2

私はおそらくクラスを2つのクラスに分割します。外部プロセスの型から派生する「outer」クラスと、すべての作業を実行するが、制御しないものからは継承しない「inner」クラスです。

次に、内部クラスをテストし、外部クラスに可能な限りロジックを含まないようにします。

何らかの方法でコードを依存関係から分離できる場合、単体テストはほとんどの場合簡単です。

于 2010-02-03T10:16:46.427 に答える
0

ソースをテストし、プロシージャ内でこれらの外部クラスメソッドを呼び出した場合、外部プロセス全体をモックすることで問題が解決する可能性があります。

ホスト クラスのように動作するようにモックを設計できます。

含む:

  • ランタイム ライブラリのモック ロード (関心のある範囲のもの)
  • 特定のメソッドから可能なすべての出力をモックする
  • 模擬例外

私は .NET 開発者ではないので詳細はよくわかりませんが、.NET のモック エンジンが非常に強力であることは知っています。

于 2010-02-03T10:03:30.773 に答える