使用TDD创建报告

Lev*_*ith 6 php tdd phpunit unit-testing

我目前正在尝试使用PHPUnit来了解测试驱动开发(TDD),我对使用TDD编写报告有疑问.

首先:我了解TDD的基本过程:

TDD流程图

但我的问题是:你如何使用TDD撰写报告?

假设您的任务是根据颜色,类型和重量编写一份关于给定交叉路口的汽车数量的报告.现在,所有上述数据都已在数据库表中捕获,但您被要求关联它.

你如何为一种你不知道结果的方法编写测试?关联此数据的方法的结果将根据日期范围和用户在运行报告时可能提供的其他限制条件进行更改?在这种情况下,如何使用像PHPUnit这样的框架在TDD的范围内工作?

Age*_*rum 6

您可以预先创建测试数据,表示您将在生产中接收的数据类型,然后针对该数据测试您的代码,每次运行测试时刷新表(即在您的SetUp()函数中).

无论您正在测试什么,都无法测试您将在生产中收到的实际数据.您只是测试代码是否按预期的方式运行给定方案.例如,如果您使用五行蓝色汽车加载测试表,那么您希望报告在测试时显示五个蓝色汽车.您正在测试报告的各个部分,以便在完成后您将自动测试整个报告.

作为比较,如果你正在测试一个期望1到100之间的正整数的函数,你会编写100个测试来测试每个单独的整数吗?不,你会在范围内测试一些东西,然后测试边界上和周围的东西(例如-1,0,1,50,99,100和101).例如,您不测试55,因为该测试将沿着与50相同的代码路径进行测试.

确定您的代码路径和要求,然后为每个路径和要求创建合适的测试.您的测试将反映您的要求.如果测试通过,那么代码将准确地表示您的要求(如果您的要求是错误的,TDD无论如何也无法保存您的要求).