В. NET Core 3.1 RequestCookieCollection больше не может использоваться для создания файлов cookie в модульных тестах. - PullRequest
3 голосов
/ 28 февраля 2020

Я только что обновился. NET Core 2.2 до 3.1. У меня есть тесты, чтобы подтвердить, что методы расширения, которые я добавил к HttpContext.Request, работают. Раньше я мог делать такие вещи, как:

    var context = new DefaultHttpContext();
    var c = new Dictionary<string, string> {{"test", "passed"}};
    context.Request.Cookies = new RequestCookieCollection(cookies);

    var result = context.Request.GetPrimedValue();

Теперь это невозможно? Я пытался использовать Moq для этого, но слишком много вещей мешают мне установить свойство Cookies с чем-либо пригодным для использования. Какое разрешение для этого?

note : я понимаю, что это был внутренний класс, который не должен был быть внутренним, поэтому я не согласен с тем, что внутреннее пространство имен скрыто , но я не уверен, каковы мои альтернативы.

1 Ответ

0 голосов
/ 29 апреля 2020

Извините, я не могу добавить это в качестве комментария, но если вы создаете свой собственный класс RequestCookieCollection, основанный на оригинальном в базовой базе кода. net:

https://github.com/dotnet/aspnetcore/blob/4ef204e13b88c0734e0e94a1cc4c0ef05f40849e/src/Http/Http/src/Internal/RequestCookieCollection.cs

Тогда вы можете использовать этот новый класс для создания вашей коллекции cook ie в вашем проекте модульных тестов. Я попробовал этот подход, и он работает.

...