4

Visual Studio 2012 を使用して "Add Fakes Assembly" でスタブを生成すると、このインターフェイスのスタブを生成できないことを除いて、すべてが期待どおりに機能します。

public interface IFileWrapper
{
    IEnumerable<string> ReadLines(string path);
    bool Exists(string path);
    Stream OpenReadStream(string path);
}

Stream を FileStream に変更すると (Stream は抽象クラスであり、これが抽象クラスでのみ発生しているかどうかを確認したかったため)、まだ生成できません。メソッド シグネチャを完全に削除すると (つまり、 が削除Stream OpenReadStream(string path);されます)、スタブを生成できます。

これは私の .fake ファイルの内容です:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true" Verbosity="Noisy">
  <Assembly Name="System.IO.Abstractions"/>
  <StubGeneration>
    <Clear />
    <Add AbstractClasses="true"/>
    <Add Interfaces="true"/>
  </StubGeneration>
  <ShimGeneration>
    <Clear />
  </ShimGeneration>
</Fakes>
  1. なぜこれが起こっているのか、どうすれば回避できますか?
  2. Fake 生成の結果が表示される Visual Studio 出力パネルがあるはずです。何も表示されず、通常のビルド パネルに表示されません。私がそれを見つけることができるアイデアはありますか?すべての VS 2012 メニューを検索しました。
4

1 に答える 1

0

これは、Fakes の現在の実装の制限が原因です。この問題は、単体テスト プロジェクトのターゲット フレームワークを 4.0 から 4.5 に切り替えることで回避できます。

于 2012-10-16T19:20:15.610 に答える