21

RSSフィードをダウンロードするコードがあります。

私はWebClientまたはArgotic.Syndication.RssFeedライブラリを使用しています。

しかし、これらはモック可能ではありません:(

単体テストを実行するたびに実際のRSSフィードをヒットしたくないのは間違いありません。

誰かが私にできることについて何か提案がありますか?

邪悪なラッパーを作成する必要がありますか?もしそうなら..これに関する提案?

4

2 に答える 2

23

誰かが私にできることについて何か提案がありますか?

インターフェイスの背後にある実際のHTTP呼び出しを抽象化します。次に、WebClientを使用してこのインターフェイスの実装を記述します。次に、メインクラスにこのインターフェイスを依存関係として使用させます。これで、単体テストでこのインターフェイスをモックし、依存性注入フレームワークを構成して、実行時に正しい実装を注入することができます。

于 2012-06-19T06:37:41.870 に答える
17

私はすべての外部依存関係のラッパーを作成するために行きます(それが実用的である場合)。したがって、ファイルシステム/ Webサービス/データベースとのすべての対話は、インターフェイスを介してのみ実行する必要があります。これにより、テスト可能なコードが増えます。

もちろん、別の解決策は(いつものように)TypemockIsolatorです。

于 2012-06-19T06:38:01.463 に答える