我在控制台应用程序中发现了以下代码,这看起来有点奇怪:
System.Diagnostics.Debug.Assert(true);
它做了什么?
答案 0 :(得分:1)
答案 1 :(得分:0)
看起来像是一个金丝雀测试。
canary test是一个简单的测试,预计会一直通过。它检查非常基本的东西,比如(在这种情况下),"我的所有框架都正确加载了吗?"如果断言失败,那么编写它的人知道他们在构建过程中遇到了严重的问题,甚至在查看任何其他错误之前都没有意义。 ; s固定。
虽然这可能看起来很荒谬,但我已经看过介绍性单元测试& TDD课程明确地教导人们从Assert(真实)金丝雀测试开始。放入该代码的人只是按照他们的教学方式进行操作
答案 2 :(得分:0)
这句话是“无操作”的书面形式。它什么都不做。这就像写作:
if (true) { }
就个人而言(我认为大多数人会同意),我发现这种性质的任何东西都没有价值,我认为这只会使代码混乱。我已经看过这样的事情并且考虑过为什么我认为人们这样做了。一些程序员似乎使用脚本模式作为这种极端的指南,这样就产生了无意义的垃圾。一些管理层似乎对员工的信任度很低,以至于他们实际上要求严格遵守这样的脚本模式!
如果您发布了无操作断言,可能是某人计划进行实际断言并忘记修复它。但也可能是参与开发过程的人对设定模式有如此依赖,以至于他们无法看到这种说法的无用性。他们可能只是认为单元测试必须始终以至少一个断言结束,即使没有任何断言。
如果是这样他们就错了。
答案 3 :(得分:-1)
如果您只是等待并阅读方法的评论,您就会知道答案
正如评论部分所指出的,如果操作人员想知道为什么有人会使用这种方法,我认为是调试类似的东西,我想调试如果当我添加3比1时它会是4,所以我会用它像这样
Debug.Assert(3+1 == 4);
如果它是4则一切都很好但如果不是4则会出现这样的消息框 这将有更多有用的信息