Visual Studio 2012 Fakes не создает заглушку для интерфейса, который имеет метод с возвращаемым типом Stream

Используя Visual Studio 2012 для создания заглушек с помощью «Добавить поддельную сборку», все работает так, как ожидалось, за исключением того, что не удается создать заглушку для этого интерфейса:

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. Предполагается, что должна быть панель вывода Visual Studio, где будут отображаться результаты генерации Fake. Я их не вижу, и они не отображаются на обычной панели сборки. Любые идеи, где я могу найти его? Я искал все меню VS 2012.

person Adam    schedule 16.08.2012    source источник
comment
Мне удалось сгенерировать заглушку для метода OpenReadStream, используя VS 2012 RC версии 11.0.50626.1.   -  person Atul Verma    schedule 18.08.2012
comment
Результаты генерации см. в этом сообщении: stackoverflow.com/questions/13051775/   -  person joerage    schedule 06.11.2012


Ответы (1)


Это вызвано ограничением текущей реализации Fakes. Эту проблему можно обойти, переключив целевую платформу в проекте модульного тестирования с версии 4.0 на версию 4.5.

person Oleg Sych    schedule 16.10.2012
comment
Я могу подтвердить эту проблему в .NET 4.5.2 и VS 2013 (2015). - person David; 19.08.2015