第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為 Web API 單元測試指定 HttpRequestMessage 的內(nèi)容

為 Web API 單元測試指定 HttpRequestMessage 的內(nèi)容

C#
守候你守候我 2022-01-16 14:32:45
我有一個(gè)要進(jìn)行單元測試的 Web API 控制器方法。它接受了,HttpRequestMessage但我不知道如何設(shè)置我想要傳遞的內(nèi)容。是否可以創(chuàng)建/模擬,HttpRequestMessage以便我可以給它一個(gè)string我想要的結(jié)果await request.Content.ReadAsStringAsync()?這是我的控制器方法:[HttpPost]public async Task<HttpResponseMessage> Post(HttpRequestMessage request){    var data = await request.Content.ReadAsStringAsync();    //do something with data}我可以使用其無參數(shù)構(gòu)造函數(shù)輕松創(chuàng)建HttpRequestMessage,但我不知道如何將內(nèi)容設(shè)置為有意義的值。我希望我的測試按照以下方式進(jìn)行:[TestMethod]public async Task PostMethodWorks(){    var controller = new MyController();    var data = "this will be JSON";    var httpRequestMessage = new HttpRequestMessage();    //set the content somehow so that httpRequestMessage.Content.ReadAsStringAsync returns data    var response = await controller.Post(httpRequestMessage);    //assert something about the response here}是否可以將內(nèi)容的值設(shè)置為某個(gè) JSON,或者我需要更改方法以便它采用不同的參數(shù)?(對于更多的上下文,我想讓方法接受 aHttpRequestMessage的原因是因?yàn)槲艺谔幚硪粋€(gè)遺留代碼庫,其中包含大量的控制器方法,這些方法接受 a HttpRequestMessage。)
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

是否可以將內(nèi)容的值設(shè)置為一些 JSON


是的


您可以使用許多HttpContent派生類中的任何一種。由于在這種情況下您要發(fā)送 JSON 內(nèi)容,因此您需要使用StringContent class


例如


[TestMethod]

public async Task PostMethodWorks() {

    //Arrange

    var controller = new MyController();


    var data = "this will be JSON";

    var httpRequestMessage = new HttpRequestMessage();


    //set the content somehow so that httpRequestMessage.Content.ReadAsStringAsync returns data 

    httpRequestMessage.Content = new StringContent(data, Encoding.UTF8, "application/json");



    //Act

    var response = await controller.Post(httpRequestMessage);


    //Assert

    //assert something about the response here

}

然而,這感覺就像一個(gè)XY 問題,因?yàn)槔硐肭闆r下 Web API 操作不會HttpRequestMessage作為參數(shù)。


還是我需要更改方法以便它采用不同的參數(shù)?


存在模型綁定器,可用于具有強(qiáng)類型操作參數(shù),這些參數(shù)將解析傳入數(shù)據(jù)并填充模型,然后再傳遞給操作。


查看完整回答
反對 回復(fù) 2022-01-16
  • 1 回答
  • 0 關(guān)注
  • 208 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號