Прошу прощения, если это дублирующий вопрос (я не нашел ничего подобного). Я пытаюсь построить сервис и модульное тестирование OpenId проверки подлинности это, в настоящее время у меня есть следующие настройки:Модульное тестирование OpenIdRelyingParty
public class OpenIdAuthenticationService : IAuthenticationService
{
private IConfigurationService _configService;
private OpenIdRelyingParty _openIdRelyingParty;
public OpenIdAuthenticationService(IConfigurationService configService)
{
_configService = configService;
_openIdRelyingParty = new OpenIdRelyingParty();
}
}
Видимо OpenIdRelyingParty необходим доступ к HttpContext, есть способ издеваться OpenIdRelyingParty и ввести его службу? Или, может быть, mock HttpContext и предоставить его OpenIdRelyingParty?
Спасибо, мне нравится этот подход, но в этом случае, как бы я инициализировал OpenIdRelyingParty? Должен ли я инициализировать его из оболочки и вводить? Или я должен проверить, является ли оно нулевым и определить значение по умолчанию? Или я чего-то не хватает? –
Это зависит от стратегии создания экземпляров, если вы используете ** IOC **, вы должны сохранить это, тогда инъекция будет выполняться конструктором или с помощью свойства. Если вы не используете IOC, вы можете просто создать экземпляр в конструкторе ** OpenIdRelyingPartyWrapped **. Для или ваших модульных тестов вы должны сделать класс mock, который наследует от ** OpenIdRelyingPartyWrapped ** и переопределяет методы, которые вы хотите высмеять. –