Я пытаюсь выполнить модульное тестирование взаимодействий моего приложения и асинхронных HttpWebRequest
методов, и мне интересно, как имитировать вызов асинхронного обратного вызова.Например, рассмотрим следующий код:
Task.Factory
.FromAsync<Stream>(wr.BeginGetRequestStream, wr.EndGetRequestStream, null)
.ContinueWith(SomeDelegate);
В этом случае wr
- это объект, который по сути обертывает HttpWebRequest.Я могу заглушить и установить ожидания для этого объекта в модульном тесте, но я не могу придумать, как создать сигнал, который в противном случае вызвал бы EndRequestStream
.Без этого сигнала модульное тестирование блокируется бесконечно в ожидании завершения задачи, что никогда не произойдет.
Я могу создать интерфейсы и прокси для Task
и TaskFactory
, затем установить ожидания на этом уровне, ноЯ надеюсь, что есть что-то меньшее.