如何对.net自动验证进行单元测试?

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

何何社区!

出于好奇,我们开始迁移到.net 8.0,发现.net 会自动验证缺失的参数。

这里是 POST https://localhost/devices/activate 的响应示例

{
    "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "errors": {
        "deviceKey": [
            "The deviceKey field is required."
        ]
    },
    "traceId": "00-1d79adff75ce5947168a526dac7bdb70-4b612cd077628f9e-00"
}
  1. 此验证何时发生?

  2. 我很惊讶,通常我们会进行单元测试来验证该行为,现在看来我们需要一个集成测试来通过调用端点来触发此响应?有没有其他方法可以在单元测试范围内获得响应,而不运行应用程序?

谢谢!

asp.net-core xunit.net .net-8.0
1个回答
0
投票

[ApiController]
属性使模型验证错误自动触发HTTP 400响应,您可以检查文档相关

如果您使用无效模型进行调试,您将获得自动响应,而无需进入控制器,并且在对控制器逻辑进行单元测试时,仅测试单个操作的内容,而不测试其依赖项或框架的行为本身。

如果您想确保应用程序的组件在包括应用程序的支持基础设施的级别上正常运行,您应该尝试集成测试

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