RSSフィードをダウンロードするコードがあります。
私はWebClient
またはArgotic.Syndication.RssFeed
ライブラリを使用しています。
しかし、これらはモック可能ではありません:(
単体テストを実行するたびに実際のRSSフィードをヒットしたくないのは間違いありません。
誰かが私にできることについて何か提案がありますか?
邪悪なラッパーを作成する必要がありますか?もしそうなら..これに関する提案?
誰かが私にできることについて何か提案がありますか?
インターフェイスの背後にある実際のHTTP呼び出しを抽象化します。次に、WebClientを使用してこのインターフェイスの実装を記述します。次に、メインクラスにこのインターフェイスを依存関係として使用させます。これで、単体テストでこのインターフェイスをモックし、依存性注入フレームワークを構成して、実行時に正しい実装を注入することができます。
私はすべての外部依存関係のラッパーを作成するために行きます(それが実用的である場合)。したがって、ファイルシステム/ Webサービス/データベースとのすべての対話は、インターフェイスを介してのみ実行する必要があります。これにより、テスト可能なコードが増えます。
もちろん、別の解決策は(いつものように)TypemockIsolatorです。