You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xunit测试中Assert.Equal断言失败问题求助

解决Xunit断言NotFoundResult相等失败的问题

问题原因

NotFoundResult是引用类型,Assert.Equal默认会做引用相等性检查——你手动创建的expectedResult和ProcessRequest返回的result是两个完全独立的对象实例,引用地址不同,所以断言会失败。

解决方案

根据测试需求,推荐以下两种常用的断言方式:

1. 仅验证返回结果的类型

如果只需要确认方法返回的是NotFoundResult类型,直接用类型断言:

// Assert
Assert.IsType<NotFoundResult>(result);

如果允许返回NotFoundResult的子类,可改用:

Assert.IsAssignableFrom<NotFoundResult>(result);

2. 验证状态码(更严谨)

NotFoundResult对应HTTP 404状态码,你可以先断言类型,再验证状态码的值:

// Assert
var actualResult = Assert.IsType<NotFoundResult>(result);
Assert.Equal(StatusCodes.Status404NotFound, actualResult.StatusCode);

替换后的完整断言代码示例

//Assert
var actualResult = Assert.IsType<NotFoundResult>(result);
Assert.Equal(StatusCodes.Status404NotFound, actualResult.StatusCode);

内容的提问来源于stack exchange,提问作者Harikarthik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:57:33