System.DayOfWeek strike>
Большую часть времени используют int. Не для производительности, а для простоты.
Это нормально для очень простого тестирования, но как бы вы провели модульное тестирование компонента, использующего HttpRequest.Files? Насколько мне известно, нет общедоступных API, позволяющих указать это в SimpleWorkerRequest. Даже если вы могли бы найти место, где вы могли бы установить свойство HttpFileCollection, обратите внимание, что его конструктор является внутренним, поэтому вы даже не можете создать экземпляр этого типа.
HttpRequest.Files не единственный в этом отношении, и в на самом деле, вероятно, вы не сможете протестировать с текущей реализацией HttpContext гораздо больше вещей, чем вы можете . Здесь действительно пригодятся абстракции.
Есть несколько сценариев, которые следует рассмотреть.
Сценарий первый: вы выполняете модульное тестирование. у вас есть что-то маленькое, например класс, который управляет доступом к кешу и явно вызывает HttpContent.Cache. В этом случае имитируйте контекст, чтобы вы могли видеть, какие звонки выполняются и работают ли они так, как вы ожидаете.
Сценарий второй: вы выполняете интеграционный тест, когда пытаетесь протестировать что-то большое, например создание сложной страницы. В этом случае дайте ему реальный объект HttpContent, как вы нашли. Ваш интеграционный тест лучше имитирует реальную среду выполнения.
Это может сработать, но ...
Мокинг / заглушка, вероятно, проще.
РЕДАКТИРОВАТЬ
Нашел исходный код для HttpContext и SimpleWorkerRequest в проекте Mono:
Те могут дать лучше понять, что происходит в процессе создания.
Нашел статью, которая также может быть полезна: ASP. NET CreateApplicationHost / SimpleWorkerRequest API Hole
Это на самом деле хорошо иллюстрирует, что нам нужно понимать, что происходит в этих объектах, прежде чем применять их, а это требует времени. Издевательство кажется проще.