Я пытаюсь выполнить тестирование кода, использующего HttpListenerContext. Я не могу найти базовый класс или интерфейс, который я могу высмеять. Есть что-то вроде HttpRequestBase для HttpListenerContext?Mocking HttpListenerContext
4
A
ответ
2
Способом решения проблемы является создание абстрактного класса с использованием виртуальных методов.
public abstract class HttpListenerContextBase
{
public virtual HttpListenerRequestBase Request { get; private set; }
public virtual HttpListenerResponseBase Response { get; private set; }
public virtual IPrincipal User { get; private set; }
}
Вы можете создать свой собственный класс-оболочку для реальной, который принимает HTTPListnerContext в конструкторе и наследуется от HttpListenerContextBase. Он просто возвращает методы из реального контекста.
В вашем коде вы затем пишете все свои методы против HttpListenerContextBase и вводите в насмешку.
Немного усилий, но вы можете что-то проверить.
Смежные вопросы
- 1. HttpContext vs HttpListenerContext
- 2. HttpContext против HttpListenerContext AcceptWebSocketRequest не может использовать переопределенный async func
- 3. Mocking $ интервал
- 4. Лучше MOCKing?
- 5. Mocking Locale.forLanguageTag
- 6. Mocking Guid.NewGuid()
- 7. Mocking NSWindowController
- 8. Mocking itertools.zip_longest
- 9. Mocking Request.Url
- 10. Mocking String.valueOf()
- 11. Mocking RavenDb
- 12. Mocking мангуст
- 13. Mocking EntityManager
- 14. Mocking File.OpenWrite()
- 15. Mocking ApiController
- 16. Mocking HttpContext.Current.Application
- 17. Mocking javax.mail.Transport
- 18. Mocking BigQueryIO
- 19. Mocking UserManager
- 20. Mocking DbEntityEntry
- 21. Mocking Communications
- 22. Mocking DbSet.toList
- 23. Mocking WebOperationContext
- 24. Mocking filesystem
- 25. Mocking FacesContext
- 26. Mocking Unmarshaller
- 27. Mocking Task.Delay
- 28. Mocking HttpContext.Current.ApplicationInstance.Response
- 29. MOQ - Mocking Response.Cookies.Clear()
- 30. Mocking mongoose using Sinon