加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – MVC控制器上的UnitTest HttpStatusCode不相等

发布时间:2020-12-15 23:32:05 所属栏目:百科 来源:网络整理
导读:我正在一个简单的控制器上进行单元测试,检查当传入空ID时它返回400代码.但是,当我测试它时,结果不会返回为等于400错误代码. 我的代码: int? nullID = null;var edit = controller.Edit(nullID) as ActionResult;var result = new HttpStatusCodeResult(400,
我正在一个简单的控制器上进行单元测试,检查当传入空ID时它返回400代码.但是,当我测试它时,结果不会返回为等于400错误代码.

我的代码:

int? nullID = null;
var edit = controller.Edit(nullID) as ActionResult;

var result = new HttpStatusCodeResult(400,null);

Assert.AreEqual(edit,result);

当我调试测试时,我得到了预期的结果:

编辑结果:

Edit Result

预期结果:

Expected Result

我在哪里错了?

解决方法

我认为HttpStatusCodeResult的equals方法正在查看引用键,我测试了你的设置,我的断言也失败了.然而,断言状态代码本身确实有效.看例子:

[TestMethod]
public void Test()
{

  var resultOne = new HttpStatusCodeResult(400,null);
  var resultTwo = new HttpStatusCodeResult(400,null);

  // Assert
  Assert.AreEqual(resultOne.StatusCode,resultTwo.StatusCode);

  Assert.AreEqual(resultOne,resultTwo);
}

Assert.AreEqual(resultOne.StatusCode,resultTwo.StatusCode); Assert.AreEqual(resultOne,resultTwo)成功;失败

更新

请参阅MSDN page关于HttpStatusCodeResult,您可以看到equals实现是从Object继承的,因此对象中没有任何属性,但只查看引用键

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读