当前位置:  开发笔记 > 编程语言 > 正文

当布尔"if"有三个结果代码路径时,你怎么看?

如何解决《当布尔"if"有三个结果代码路径时,你怎么看?》经验,为你挑选了1个好方法。

(背景:从以前的工作,一个同事,我最终会在午餐时讨论错误堆.我们开始开发一个名为"本周的错误"的主题.我怀疑我每年有52个帖子的材料,但是这是第一个......)

报告人:

QA测试人员正在阅读HTML/JS代码以编写Web表单的功能测试,并看到:

if (form_field == empty)
{
...do stuff for empty field
}
else if (form_field != empty)
{
...do stuff for non-empty field
}
else
{
...do stuff that will never be done
}

经过几次尴尬的尝试,测试人员意识到他们无法触发隐藏在第三个区块中的警报字符串.

我想知道的是:

这个问题或多或少是语言特定的(非JS人员可以在这里学习课程吗?)

代码以这种方式结束是否有正当理由?

应该使用哪些方法来查找/解决问题(代码覆盖率,代码审查,黑盒测试等)

其他几点:

    我希望我们能保持积极的态度.想象一下,这是一个与你合作的人(在一家不鼓励燃烧的公司).无论你认为有罪的一方是什么意思,我可能已经考虑过了.

    我不是职业编码员.我检查了wiki框,以防有人想提供更文字的例子,或者添加到线程的基础.

[编辑]类似于/sf/ask/17360801/



1> Godeke..:

虽然第三个块不能在Javascript中触发,但在所有语言中都不是这样.在T-SQL中:

declare @test as int

set @test = null

if @test = 1 
  print 1
else if not @test = 1
  print 2
else 
  print 3

这将打印3,因为NULL既不等于,也不等于任何其他值.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有