首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么"Assert“类有这么多看似多余的方法?每一个都应该在什么时候使用?

为什么"Assert“类有这么多看似多余的方法?每一个都应该在什么时候使用?
EN

Stack Overflow用户
提问于 2010-02-23 03:42:08
回答 6查看 354关注 0票数 6

所以我看到Assert有几十个方法,它们似乎做了本质上相同的事情。

代码语言:javascript
运行
复制
Assert.IsFalse(     a == b );
Assert.IsTrue(      a != b );
Assert.AreNotEqual( a,   b );

为什么?这仅仅是为了更明确吗?应该在什么时候使用各种方法?是否有官方的最佳实践文档?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-23 03:45:41

IsFalseIsTrue之间的区别在于可读性。AreNotEqual允许在测试失败时显示更好的错误消息。例如,IsTrue会告诉你答案应该是真的,但实际上是假的。AreNotEqual将显示在其错误消息中比较的两个值。

票数 8
EN

Stack Overflow用户

发布于 2010-02-23 03:43:43

简而言之:为了可读性。

稍长一点的答案:

您的测试也是代码,就意图而言,与您正在测试的代码一样重要。因此,您希望尽可能清楚地说明测试的目的。有时这意味着你使用IsFalse,有时它意味着你使用IsTrue

票数 8
EN

Stack Overflow用户

发布于 2010-02-23 03:43:51

这三种方法有三个不同的具体目标。测试的目标是为您的代码提供清晰的验证和验证。通过使用尽可能清晰和具体的方法,您可以使您的测试尽可能小,具有最具体、最清晰的含义。

这很有帮助,因为它增加了清晰度-你可以明确地看到,在更具声明性的性质中,测试应该做什么,在这种情况下,对多个测试场景使用相同的方法,每个场景都有不同的含义,需要更多地理解代码本身,而不是测试的性质。

在这种情况下,第三个是(唯一)合适的。但是,如果您有这种情况,您将使用不同的情况,例如:

代码语言:javascript
运行
复制
Assert.IsTrue( myClass.MethodThatReturnsTrue() );

你应该使用对你的目标提供最清晰的方法-如果你检查两个值是否相等,使用Assert.IsEqual,如果你检查一个布尔值来验证它是否为false,使用Assert.IsFalse。这使得错误报告变得有意义且易于理解。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2313599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档