Я пытаюсь заставить Deleporter выполнить некоторые проверки интеграции кросс-процессов. Тесты выполняются с использованием WatiN против нашего приложения ASP.NET MVC3. Мы используем Autofac для инъекций зависимостей.Autofac и Deleporter
Я просмотрел блог Стива Сандерсона о том, как настроить его, чтобы вернуть ложный репозиторий, используя NInject.
// Inject a mock IDateProvider, setting the clock back to 1975
var dateToSimulate = new DateTime(1975, 1, 1);
Deleporter.Run(() => {
var mockDateProvider = new Mock<idateProvider>();
mockDateProvider.Setup(x => x.CurrentDate).Returns(dateToSimulate);
NinjectControllerFactoryUtils.TemporarilyReplaceBinding(mockDateProvider.Object);
});
Есть ли автофокусный эквивалент TemporarilyReplaceBinding?
Я пробовал следующее ниже, но получаю сообщение об ошибке «Область жизни запроса не может быть создана, потому что HttpContext недоступен».
Таблица проходит через SpecFlow.
var tableSerialized = new SerializableTable(table);
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);
var container = builder.Build();
builder.Update(container);
});