2017-02-27 30 views
0

我有这个片段的测试代码时失败:C#的xUnit Assert.Equal比较VAR和int

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

据我所知,C#小号变量被隐式类型,因此它被认为是在编译时一个int ;他们都应该是Int32。它不会比较这些值吗?

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

回答

0

它的工作原理在我的机器:)

上,但是你错过了[Fact]注释在您的例子,它是错误?

+0

这是在我的程序中,我只是没有提到这个帖子,谢谢! – ByronPark

0

是的,它应该比较的值,他们应该都是int s。

各种Equal过载should be in here的impl。

如果你在本地克隆Asserts Lib(或者我提供了子模块链接的源代码回放),你可以通过impl(或关闭工具|选项中的我的代码 - 很确定xUnit的符号发布在某处)。