2014-02-17 3 views
1

Я пробовал Moles в первый раз. Когда я пытаюсь добавить сборку Moles в System.Windows.Forms, она генерирует код со ссылками на System.Collections.Generic.IReadOnlyCollection и IReadOnlyList, который не компилируется, потому что они только в .NET Framework 4.5, а мои проекты - всего 4.0 VS2010. Я установил ссылки на сборку для конкретных версий, но это не помогло. Есть идеи?Moles и System.Windows.Forms

+0

Почему вы хотите добавить Родинки в WinForms? Обычно вы должны ссылаться на него в проектах тестирования модулей. – Dannydust

+0

Но то, что вы упомянули, странно, потому что Moles для VS 2010 в VS 2012 вам нужно использовать Fakes afaik. Поэтому не имеет смысла, что родителям нужны ссылки на классы .Net Fx 4.5. – Dannydust

+0

@ Dannydust Код, который я тестирую, является конфигурационным интерфейсом для адаптера BizTalk. Это просто DLL, которая запускается платформой BizTalk в MMC, поэтому я получил вызов MessageBox.Show для отображения любых ошибок для пользователя. Я хочу проверить остальную функциональность, но издеваться над этим вызовом. Это BizTalk 2010, который поддерживается только в Visual Studio 2010, поэтому я не могу использовать Fakes. У меня даже нет VS2012. – Bert

ответ

1

Если вы используете Moles в Visual Studio 2012, вам необходимо явно исключить определенные сборки и типы.

Вот что работает для меня:

<Assembly Name="System.Windows.Forms" ReflectionOnly="true"/> 
<StubGeneration> 
    <Types> 
     <Clear /> 
     <Add FullName="Your.Type.Full.Name!" /> 
    </Types> 
</StubGeneration> 
<MoleGeneration> 
    <Types> 
     <Clear /> 
     <Add FullName="Your.Type.Full.Name!" /> 
    </Types> 
</MoleGeneration> 
+0

Прошу прощения за то, что вы так долго вернулись. Это работает. Благодарю. – Bert

Смежные вопросы