我只是深入研究了php中的测试/测试驱动开发,并对如何处理遗留代码库中非常典型的场景感到有点困惑。我们的代码库没有很多类,它非常面向功能编程。
在这个示例代码(伪代码)中,我想为getAndOrderUsersByAge()编写一个测试。正如您所看到的,它首先从我们的数据库中获取所有用户(例如,在一个巨大的数组中,因为我们没有对象/类),然后对它们进行排序。当然,这在我们的代码中非常常见,操作或分析从数据库获取的数据;基本上不是对象,而是数据库行数组。
注意,我在if语句中添加了一个错误,以模拟我希望测试捕获的错误。
//gets all users in our db into an arr
我正在努力找出如何编写代码,既要对手头的任务足够快,又要有良好的结构,以便将来可读和可维护。
该任务是在php中生成销售报告,该报告利用SQL数据库中的数据。该报表返回数千行,每行代表一次销售。报告的许多列必须在生成报告时计算,因为它们的值没有存储在数据库中。我已经编写了一个大型SQL查询,可以非常快速地一次生成报告。
我的问题是,这会造成代码重复,此外,从系统实体的角度来看,很难让人理解SQL代码。例如,我的函数库中有一个函数,它返回销售收到的金额。它调用下面的一段SQL来完成此操作。
SELECT SUM(amount) AS amount_received
FROM transactio