我正在為一個.NET 5.0專案撰寫一個控制器:
我正在為一個.NET 5.0專案撰寫一個控制器。
// <summary>
// 一個處理與參與者相關的請求的控制器。
// </summary>
[ApiVersion("1.0")]
[Route("v{version:apiVersion}/rooms/{RoomId}/participants")]
[ApiController]
[Authorize("ClientIdPolicy")]
public sealed class ParticipantController : ControllerBase {
//每條路線上都應該有的房間ID。
[FromRoute]。
private string RoomId { get; set; }
[HttpPost]
[ResponseType(typeof(DTO.Room))]
public async Task<IActionResult> PostAsync(DTO.Participant。
CancellationToken token = default) {
if (string.IsNullOrWhitespace(RoomId)) {
return BadRequest(new ArgumentException("Room ID was empty") )。
}
//其他控制器代碼。
}
}
現在,我正試圖圍繞它撰寫單元測驗:
var controller = new ParticipantsController() {
ControllerContext = new ControllerContext(new ActionContext(
HttpUtilities.TestHttpContext("/v1.0/rooms/a8e3e87d-21e9-4a23-92cc-a50a662c1556/participants") 。
new RouteData(), new ControllerActionDescriptor()) )
};
IActionResult result = await controller.PostAsync(participant, Source.Token).ConfigureAwait(false)。
我遇到的問題是,當我呼叫控制器時,RoomId為空。我怎樣才能確保這個值被正確地創建,以便我可以進行測驗呢?
uj5u.com熱心網友回復:
我不知道你可以這樣使用屬性。我將通過提供路由作為函式本身的引數來實作這樣一個控制器,使測驗更加容易:
// <summary>/span>
// 一個處理與參與者相關的請求的控制器。
// </summary>
[
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323072.html
標籤:
上一篇:如何用retorfit2創建用于決議Json的通用模型類?
下一篇:在Rx.NET中是否有一種Subject的實作,其功能類似于BehaviorSubject,但只有當值發生變化時才會發出信號?
