假设成功或失败 - 有好处吗?

时间:2011-05-12 00:50:56

标签: validation

我正在编写一个简单的表单验证脚本,并想知道是否更好的实践(在这个脚本的范围内,在通用编程中)是否能够成功并测试失败,或者它是否是最好的假设失败,然后尝试确保每个项目都成功。

我已经搜索了这个主题,只是被一堆鼓舞人心的报价所打动,而且我很感兴趣,如果有一种情况会产生影响,因此,如果一种方法更好/更安全/更多效率高于另一个?

目前我的测试方式如下:

validation = true

for each field
{
    if not validate(field)
    then validation = false
}

return validation

我在这个特定情况下看到的唯一好处是,在没有要验证的事情的情况下,表单提交。

1 个答案:

答案 0 :(得分:1)

只是粗略探索一下这个问题,我认为问题归结为默认情况下,您的设计是否最适合包含或排除数据。

假设有一组值A,B和C,接受结果有两个可能的标准:1。所有值必须有效,或2.没有值必须无效。

在第一种情况下,人们开始的前提是默认结果在所有值被验证之前都是假的,而在第二种情况下,默认值为真,直到被一个无效值证明为假。

为了说明,假设一个包含以下内容的表单:

First Name: [  ] (required)
Last  Name: [  ] (required)
Tel Number: [  ] (required)
Email Addr: [  ]

可能的验证可能是:

First Name must not be empty and must contain alpha chars only.
Last  Name must not be empty and must contain alpha chars only.
Tel Number must not be empty, must contain numbers only, formatted as (xxx) xxx-xxxx.
Email Addr if not empty, must be formatted as xxx@xxx.yyy, etc.

此案例包含在内,因为所有验证规则必须返回true才能使输入可接受。因此,默认值应为false,直到证明为真。

现在考虑发送电子邮件的部分表格:

Subject:  [  ]
CC:       [  ]
BCC:      [  ]
Priority: [  ]

由于所有字段都是可选字段,因此这是一种独特的情况,从数据有效的假设开始,直到它们被一个不可接受的值证明无效为止。