PHP:如何使用assert

Sta*_*bie 7 php

在PHP中,使用断言时遵循的最佳实践是什么?我对断言和PHP特定实践的一般使用感到好奇.

Alf*_*red 5

按合同设计

我相信断言在PHP中用得不多.如果您按合同设计,则可以使用它.

合同设计(DbC)或合同编程是一种设计计算机软件的方法.它规定软件设计者应为软件组件定义正式,精确和可验证的接口规范,这些规范扩展了具有前置条件,后置条件和不变量的抽象数据类型的普通定义.根据商业合同的条件和义务的概念隐喻,这些规范被称为"合同".

教程稍微解释了一下.

TDD /单元测试

我建议你按照这3条简单的规则(必读文章)对你的代码(TDD)进行单元测试.

  1. 除非要进行失败的单元测试通过,否则不允许编写任何生产代码.
  2. 您不得再编写任何单元测试,而不是足以使其失败; 和编译失败是失败.
  3. 您不能再编写足以通过一个失败单元测试的生产代码.

您必须首先为要编写的功能编写单元测试.但是根据规则2,你不能写很多单元测试.一旦单元测试代码无法编译或断言失败,您必须停止并编写生产代码.但是根据规则3,您只能编写使测试编译或通过的生产代码,而不是更多.

如果你想到这一点,你就会意识到,如果不编译和执行某些东西,你就根本无法编写很多代码.实际上,这确实是重点.

要练习(纪律),你应该使用优秀的PHPUnit框架.您应该阅读PHPUnit的写作测试,以了解这门学科.