Я пытаюсь написать модульные тесты с участием моих прокси-объектов сущности RIA WCF, и когда я пытаюсь получить доступ к родительским или дочерним свойствам сущности через ассоциацию, я получаю FileNotFoundException
, когда класс WebContext не может загрузить System.Xml
.
Например, у меня есть две сущности, определенные в моем веб-проекте в Entity Framework - Course
и CourseUnit
. У Course
много CourseUnit
детей. Я не подвергаю контексты RIA или что-либо еще моим ViewModels, все они скрыты за интерфейсами. Я использую Moq для макетирования этих интерфейсов и возврата стандартных прокси-объектов сущностей RIA в мои модульные тесты.
Это прекрасно работает, когда я тестирую такие вещи, как
Assert.AreEqual("title", course.Title)
, где course
- это экземпляр прокси-сервера RIA. Однако, если я сделаю что-то вроде
Assert.AreEqual(0, course.CourseUnits.Count)
я получаю следующее исключение
FileNotFoundException не был обработан
код пользователя Не удалось загрузить файл или
сборка 'System.Xml, версия = 2.0.5.0,
Culture = нейтрально,
PublicKeyToken = 7cec85d7bea7798e 'или
одна из его зависимостей. Система
не могу найти указанный файл.
И точно так же, если я выполняю какой-либо код в модульном тесте, который включал одно из этих отношений, то код выдает то же исключение. По сути, если я когда-нибудь попытаюсь получить доступ к этим свойствам с помощью ассоциативных отношений из моих тестов, они нарушатся.
Исключение фактически возникает в сгенерированном коде. Его можно найти в файле [webProjectName].g.cs
в частичном классе Course : Entity
и происходит в получателе CourseUnits.
Есть идеи?
Редактировать - я добавил ссылку на сборку EntityFramework, и исключение изменилось на то же самое, но System.ComponentModel.DataAnnotations вместо System.Xml. Излишне говорить, что я пытался ссылаться на обе сборки в проекте модульного тестирования, и это не сработало.