用于集成测试的测试数据策略列表页面

时间:2016-01-10 10:52:57

标签: php testing integration-testing

我的应用是列表页面:例如商店的产品/类别,目录中的洛杉矶医生名单或搜索结果等。

我正在重构/重构/现代化遗留应用程序,在启动时,我可以编写的唯一类型的测试是集成测试,例如使用Selenium /等效实际命中服务器上的页面。迫切需要重构的代码包括处理列表过滤的极其复杂和臃肿的函数。我需要集成测试以确保代码不会被重构破坏。随着重构的进行,我将慢慢整合单元测试。

我了解如何创建集成测试以检查产品页面是否存在以及它是否具有相关数据。我可以将许多预定义的产品作为种子数据库数据,在每次测试之前重置,并在测试中明确地引用这些产品。

但是,如何针对某些复杂的列表页面进行设置测试 - 按价格/自定义属性过滤产品,按专业和城市等方式过滤医生+结果是否已分页?如果我手动检查这个,我需要大量的测试数据并检查过滤器是否按预期运行并且分页是否正常。显然,我正在尝试自动化这个过程,但我正在努力解决如何将测试与测试数据联系起来的问题。

我想到的一些方法:

  1. 设置测试数据,记录结果当前显示的方式(重构代码之前),然后记录测试中的硬编码。

    缺点:依赖于大量测试数据的硬编码测试期望似乎如此脆弱!它只需要向db中添加一条记录来偏置filter的预期结果!

  2. 提取代码当前使用的SQL,在测试中运行该SQL,并将结果与​​页面中的结果进行比较。

    优点:只要sql查询没有改变,只要将记录添加到数据库中,测试就不会中断。

    缺点:感觉复杂。

  3. 如果过滤页面需要测试以及哪些部分重新思考?

  4. ...

0 个答案:

没有答案