我为什么要使用Assert类方法?

ygo*_*goe 0 .net c# unit-testing

我发现Assert课程方法相当混乱而不是有用.我觉得特别恼人的是微软的MSTest方法期望(或要求?)我向后写比较,i.即 首先是常量/期望值,第二个是变量/实际值.这与自然语言相矛盾,因此与代码中的一般比较的许多编程指南相矛盾.

所以不是这样的:

Assert.AreEqual(5, value, "Value is not correct.");
Run Code Online (Sandbox Code Playgroud)

这有什么问题,看起来更通常的测试指令:

if (value != 5) Assert.Fail("Value is not correct.");
Run Code Online (Sandbox Code Playgroud)

这就是所有代码的样子.这是每个程序员的眼睛训练,以便快速看到和理解.其他断言方法可以很容易地用常规代码编写.

使用C#6,using static你甚至可以放弃这Assert.部分.

我在网上和Assert类文档中找不到任何关于此的理由.

Guy*_*Guy 7

Assert.AreEqual(5, value, "Value is not correct.");您收到的消息中将包含类似的内容

预计5,取而代之的是3

if (value != 5) Assert.Fail("Value is not correct.");消息中将是

价值不正确.

由于没有导致断言失败的价值,女巫的信息量会少得多.