发布
社区首页 >问答首页 >DotNet核心,如何使用自定义模型绑定来测试控制器操作方法

DotNet核心,如何使用自定义模型绑定来测试控制器操作方法
EN

Stack Overflow用户
提问于 2019-09-20 17:38:07
回答 1查看 1K关注 0票数 0

对于ASP.Net Core2.2,我在PUT中使用了一个ModelBinder,如下所示:

代码语言:javascript
代码运行次数:0
复制
[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),我希望确保错误的输入产生正确的输出。
  • --这不需要使用实际的模型绑定器。我可以模仿一个能满足我需要的人。如果这样做,至少需要一个测试来确保注释在代码中的正确应用。
EN

回答 1

Stack Overflow用户

发布于 2019-09-27 22:48:32

这可以通过集成测试来实现,该测试可以在部署之前运行。在SO上提出了一个类似的问题,并很好地回答了(IMHO) here。如果你想看一个简短的解释和例子,看看它。

正如在回答中所建议的,我还建议您仔细阅读以下文档:https://learn.microsoft.com/en-us/aspnet/core/testing/integration-testing

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58032923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档