DotNet Core,如何使用自定义模型绑定对控制器操作方法进行单元测试

问题描述 投票:0回答:1

使用ASP.Net Core 2.2,我的PUT中使用了ModelBinder,如下所示:

[HttpPut("{taskIdentifier}/{number}")]
public async Task<IActionResult> Put(string taskIdentifier, string number, 
            [ModelBinder(typeof(TaskUpdateV1Binder<TaskUpdate>))]TaskUpdate value)

在运行时,将调用TaskUpdateV1Binder,它读取请求正文并创建TaskUpdate对象。

我想对此进行单元测试。我不能直接从单元测试中直接调用Put,因为它绕过了模型绑定。

我已经对绑定器本身进行了测试,但是我需要测试控制器正在使用的绑定器。我没有测试MVC路由。

  • 我想要一个单元测试,如果有人删除ModelBinder将会失败注解。

  • 某些属性由活页夹设置(例如ModelState.IsValid)并且我想确保输入错误会产生正确的输出。

  • 这不必使用实际的模型活页夹。我可以模拟一个那就是我需要的。如果这样做,我仍然需要至少一项测试,以确保注释正确地应用于代码中。

c# unit-testing asp.net-core xunit xunit.net
1个回答
0
投票

这可以通过integration

© www.soinside.com 2019 - 2024. All rights reserved.