У меня есть модульные тесты для моих услуг. Я использовал Azure Active Directory для аутентификации. Теперь при передаче сеансов с использованием MockHttpRequest
я получаю исключение как Unable to cast object of type 'ServiceStack.AuthUserSession' to type 'AadAuthSession'.
Вот мой код в классе Testbase.Прохождение сеанса в модульном тесте
IAuthSession session = new AadAuthSession();
session.UserName = "Author";
appHost.Plugins.Add(new AuthFeature(() => session,
new IAuthProvider[] {
new AadAuthProvider(appHost.AppSettings),
}
));
Мне что-то не хватает. Как его правильно направить?
public TestBase()
{
appHost = new TestAppHost().Init();
appHost.TestMode = true;
appHost.AppSettings = new AppSettings();
appHost.Container.Register<IDbConnectionFactory>(
new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider));
appHost.Container.Register<ICacheClient>(new MemoryCacheClient());
IAuthSession session = new AadAuthSession();
appHost.Container.Register<IAuthSession>(c => session);
session.UserName = "Author";
appHost.Plugins.Add(new AuthFeature(() => session,
new IAuthProvider[] {
new AadAuthProvider(appHost.AppSettings),
}
));
}
Я использую первый вариант издевательств сессии в IOC и устанавливаю TestMode = true, все еще получая ту же ошибку. Есть ли какой-либо тип, который отсутствует или требуется. Я обновил свой код. взгляните на сообщение .. – Lara
@ Lara вы используете последнюю версию ServiceStack версии 4.0. если да, то что такое StackTrace? MockHttpRequest может потребовать от вас наследовать от AuthUserSession. – mythz
Я добавил необходимый код для 'MockHttpRequest()', пожалуйста, взгляните на мое обновленное сообщение и сообщите мне, что нужно добавить ... – Lara