Это была ошибка с моей стороны.В коде выше я пропустил, как я получал контейнер для обновления.Я делал это с помощью вызова
DependencyResolver.Current.GetService ()
. Это было тем, что выдавало ошибку о недоступном HttpContext.
Я удалил это изатем в моем Global.asax.cs я добавил статический экземпляр для хранения созданного IContainer.Поэтому изменение кода, который запускает Deleporter на
Deleporter.Run(() =>
{
var mockRepository = new Mock<IRepository<SmsMessageReceived>>();
mockRepository.Setup(x => x.Table)
.Returns((from row in tableSerialized.Rows
select new SmsMessageReceived
{
DateCreated = DateTime.Now,
Id = Int32.Parse(row[ColumnId]),
MessageBody = row[ColumnMessageBody]
}).AsQueryable() as IQueryable<SmsMessageReceived>);
var builder = new ContainerBuilder();
builder.RegisterInstance(mockRepository.Object);
builder.Update(MvcApplication.Container);
});
MvcApplication, является классом в Global.asax.cs.
Затем добавили ссылку на Moq в мой веб-проект, и теперь он работает отлично.
Интересно, есть ли лучший способ получить контейнер, чем статический, но это работает.