Используя ASP.NET MVC 1.0 (текущий), я создаю новый проект ASP.NET MVC по умолчанию, используя Visual Studio 2008 на компьютере x64 (Server 2008), принимаю все значения по умолчанию, собираю и запускаю его. Помимо установки сборок System.Web. * Как «Копировать локально», он запускается и вызывает веб-приложение по умолчанию. Когда я пытаюсь запустить модульные тесты этого проекта, я получаю:
Исключение при юнит-тестировании адаптера: невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации ..
Теперь, если я повторю то же самое упражнение, используя VS2008 на компьютере с архитектурой x86 (Server 2003), тогда все 27 модульных тестов по умолчанию будут работать нормально. (Также мне не нужно отмечать сборки System.Web. * Как «Copy Local»)
Идеи для разрешения исключения?
Подробнее:
Попробовав некоторые из предложенных решений, я начал комментировать отдельные части тестового кода, сгенерированного в новом проекте. Таким образом, я считаю, что ошибка генерируется включением одного из следующих классов:
public class MockIdentity : IIdentity
{
public string AuthenticationType
{
get
{
return "MockAuthentication";
}
}
public bool IsAuthenticated
{
get
{
return true;
}
}
public string Name
{
get
{
return "someUser";
}
}
}
public class MockPrincipal : IPrincipal
{
IIdentity _identity;
public IIdentity Identity
{
get
{
if (_identity == null)
{
_identity = new MockIdentity();
}
return _identity;
}
}
public bool IsInRole(string role)
{
return false;
}
}
public class MockMembershipUser : MembershipUser
{
public override bool ChangePassword(string oldPassword, string newPassword)
{
return newPassword.Equals("newPass");
}
}
public class MockHttpContext : HttpContextBase
{
private IPrincipal _user;
public override IPrincipal User
{
get
{
if (_user == null)
{
_user = new MockPrincipal();
}
return _user;
}
set
{
_user = value;
}
}
}