[英]Mocking HttpContext.Session in .NET Core
一般的經驗法則是避免使用“胖控制器”。 我的控制器實際上具有針對相應服務執行所需的模型或參數。 理想情況下,您的控制器動作是一個具有許多描述端點的屬性的單個調用,請考慮以下事項:
public class MyThinController : Controller
{
[
HttpGet,
Route("api/[controller]/foos/{bar}"),
Authorize(Policy = nameof(Policies.StackoverflowOp))
]
public Task<IActionResult> GetFoo([FromRoute] Bar bar,
[FromServices] IExampleService service)
=> service.GetAsync(bar);
}
然后,您唯一需要擔心的是,在給定bar
的情況下, IExampleService
的實現確實會正確獲取Foo
。
但是,如果您完全不願意以正確的方式進行操作,那么總會有一種錯誤的方式來進行操作。 您實際上正在尋找的是Moq就緒的ActionContext.HttpContext
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.