У меня есть веб-страница, которая получает запрос веб-ловушки, и я хочу написать тестовые примеры для модулей (NUnit framework) для этой веб-ловушки. Я хочу смоделировать запрос веб-перехвата (Post request) в модульных тестах и передать заголовки запроса и тело в виде Json data на веб-страницу, которая получает запрос.
Имя веб-страницы
/webhook/receiveWebHook.aspx
Заголовки запроса
Content-Type: application/json
messageType: TestInsertNotification
Тело запроса (Json данные)
{
"Alias":"Test",
"TransactionID":"123"
}
Код на веб-странице:
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
{
object notification = null;
string message = string.Empty;
Int32 pID = InsertHTTPRequest(HttpContext.Current.Request); //Generate id in DB
if (pID > 0 && this.Request.ContentType == "application/json")
{
StreamReader sr = new StreamReader(this.Request.InputStream, this.Request.ContentEncoding);
message = sr.ReadToEnd();
TextReader content = new StreamReader(new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(message)));
JToken json = JToken.Load(new JsonTextReader(content));
notification = new JsonSerializer().Deserialize(new JTokenReader(json), this.GetTypeOfMessage(HttpContext.Current.Request.Headers("MessageType")));
}
if (notification != null)
{
if (notification is InsertNotification)
{
InsertNotification insertNotification = notification as InsertNotification;
DbInsertMethod(pID, message, insertNotification);
}
}
}
}
Может кто-нибудь помочь, как выполнить модульное тестирование для веб-хуков в c#? Также, пожалуйста, предложите, как передать HTTP Post запрос из метода юнит-теста с заголовком и телом (содержащим Json данные)?
PS: В настоящее время я использую Postman для проверки работоспособности этого webhook.