C# XUnit Assert.Equal 比较 var 和 int 时失败

C# XUnit Assert.Equal failing when comparing var and int

我有这段测试代码:

public void Test () {
    var expected = 10;
    int actual = 10;
    Assert.Equal(expected, actual);    //Failing
}

我理解 C# 的 var 是隐式类型的,所以在编译时它被识别为一个 int;它们都应该是 Int32。不会是比较值吧?

我还读到 Equal 方法比较对象;这会影响它比较两种原始类型的方式吗?

它在我的机器上工作:)

但是您在示例中错过了 [Fact] 注释,这是错误的吗?

是的,应该是比较值,应该都是ints。

各种 Equal 重载的实现 should be in here

如果您在本地克隆断言库(或我为其提供子模块 link 的源代码库),您可以单步执行 impl(或在工具|选项中关闭“仅我的代码”- 很确定xUnit 的符号在某处发布)。