Прокладка внутренних классов Microsoft Fakes не создана

У меня есть приложение Windows Form (сборка с именем «WindowsFormsApplication1») и проект модульного теста (сборка с именем «UnitTestProject2»).

Я добавил атрибут InternalsVisibleTo в "WindowsFormsApplication1 \ AssemblyInfo.cs", например

[assembly: InternalsVisibleTo("UnitTestProject2")] 

Для доступа к внутреннему классу из «WindowsFormsApplication1» в приложение модульного тестирования «UnitTestProject2» с помощью Microsoft Fakes (VS 2012 Ultimate).

Я могу получить доступ к внутреннему классу напрямую, используя пространство имен из проекта модульного тестирования. Но я не могу получить доступ к фейкам - прокладкам и заглушкам для этого внутреннего класса. Я пробовал разные комбинации для атрибута InternalsVisibleTo:

[assembly: InternalsVisibleTo("UnitTestProject2.Fakes")], 
[assembly: InternalsVisibleTo("UnitTestProject2.Tests")]

и т.д., но никто не работал.

Кто-нибудь знает, что пошло не так и как это решить?

К вашему сведению: Ссылка - Ref1, Ref2.


person GMCS Pune    schedule 27.02.2017    source источник


Ответы (1)


Предположим, что тестируемая вами сборка - «WindowsFormsApplication1», тогда вам нужно добавить 2 атрибута InternalsVisibleTo:

[assembly: InternalsVisibleTo("WindowsFormsApplication1.Fakes")]
[assembly: InternalsVisibleTo("UnitTestProject2")]

MSDN:

Генератор кода Fakes будет генерировать типы прокладок и типы заглушек для типов, видимых для созданной сборки Fakes. Чтобы сделать внутренние типы сборки с оболочкой оболочки видимыми для Fakes и вашей тестовой сборки, добавьте атрибуты InternalsVisibleToAttribute в код сборки с оболочкой с оболочкой, который обеспечивает видимость сгенерированной сборки Fakes и тестовой сборки.

person Rustem Zinnatullin    schedule 31.05.2017