什么时候使用单元测试

实上很少有人会去测试一个PHP的内置函数。但是用来测试你自己的函数是有价值的。观察它们是否可以返回正确的结果,需要担心的主要有:

  • 他们的表现完美吗?
  • 但是如果用户想在其他环境下运行, 它还能正常工作吗?
  • 或你将会写更多的代码, 或修改现有的代码, 造成你自己的函数不能正常地工作。

有时, 出错是是由于编程问题引起的, 所以我们可以用编程来捕捉和修改错误。你能在用不同参数进行测试的过程中获得乐趣。

让我们回到我们那个运行一个数据库查询删除指定ID值的记录的那个例子。如果下面情况出现它会做什么:

  • ID是NULL,或者没有给出值?(特别地重要地,你可能偶然地删除表中所有的数据。)
  • ID不是一个整数? ("x", 举例来说?)
  • 身份证是一个整数, 但是超出范围 (你在你的表中有 1000个记录,但是ID是1001?)
  • ID是一个负整数?

诸如此类,想出不同测试条件是有趣的。

在单元测试中把这些参数放进函数, 并看看结果。 当然,结果可能和你预料的一样。第一个情形和第二个情形会报错。 你应该修改以阻止它发生。因此执行后,单元测试不能通过。

我们定义我们要从每个测试中得到的结果,如果结果和我们设定的一样,测试就通过。但是如果在测试过程中,程序抛出一个异常,后面的代码不再执行,我们如何能够让单元测试完成呢?这就要求我们必须先保证程序没有语法上的错误,让函数能够执行所有的代码。毕竟,单元测试不是用来对付语法错误的,这是PHP环境的工作。

上述假设的第三个情况是ID超出范围,这不是一个代码错误,数据库能安全地处理这种情况。但是,你可以在把查询发给数据库之前做一定的检测工作。或者你也可以让它运行一下,因为有可能会使数据库返回一个出错信息,因此你需要用自己的错误信息来代替系统给出的信息,比如“对不起,现在系统正忙,无法提供服务 ”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值