Php 使用大型项目进行适当的单元测试

Php 使用大型项目进行适当的单元测试,php,unit-testing,laravel-5,Php,Unit Testing,Laravel 5,我正在使用Laravel为一个大型API编写单元测试,我担心的是,由于系统的复杂性,单个测试需要很多以前的条件,例如有用户、会话、活动区域等,而且因为我使用事务(以避免将测试记录留在数据库中),我需要在每个测试函数之前创建这些条件。。。代码增长非常快,测试不再是单一的(因为在测试实际目标之前,我必须检查所有以前的条件,具有讽刺意味的是,还要进行其他单一测试) 你如何处理这种情况?您是否按顺序执行测试并保持状态以备将来测试?你如何处理嘲弄 谢谢。按照您概述的方法进行操作将很快变得无法维护。创建大型

我正在使用Laravel为一个大型API编写单元测试,我担心的是,由于系统的复杂性,单个测试需要很多以前的条件,例如有用户、会话、活动区域等,而且因为我使用事务(以避免将测试记录留在数据库中),我需要在每个测试函数之前创建这些条件。。。代码增长非常快,测试不再是单一的(因为在测试实际目标之前,我必须检查所有以前的条件,具有讽刺意味的是,还要进行其他单一测试)

你如何处理这种情况?您是否按顺序执行测试并保持状态以备将来测试?你如何处理嘲弄


谢谢。

按照您概述的方法进行操作将很快变得无法维护。创建大型可维护单元测试套件的一个重要部分是通过隔离测试来最小化级联故障

如果每个测试都依赖于其他测试,那么当依赖关系的实现发生变化时,将会有许多不相关的测试失败。单独测试可以帮助减少这种情况。创建隔离测试,是一个干净的体系结构和组件的产品。通常在易于测试的设计中起着巨大的作用


实现这一点的一种方法是隔离依赖项,并且只执行应用程序逻辑。

遵循您概述的方法将很快变得无法维护。创建大型可维护单元测试套件的一个重要部分是通过隔离测试来最小化级联故障

如果每个测试都依赖于其他测试,那么当依赖关系的实现发生变化时,将会有许多不相关的测试失败。单独测试可以帮助减少这种情况。创建隔离测试,是一个干净的体系结构和组件的产品。通常在易于测试的设计中起着巨大的作用


实现这一点的一种方法是隔离依赖项,并且只执行应用程序逻辑。

我认为您描述的不是单元测试。使用phpunit运行测试并不意味着它们是单元测试。在过去的几天里,我已经阅读了很多测试,现在我可以看到有不同级别的测试,包括单一测试、接受测试和集成测试。我不认为您描述的是单元测试。使用phpunit运行测试并不意味着它们是单元测试。在过去的几天里,我已经阅读了很多测试,现在我可以看到有不同级别的测试,包括单一测试、接受测试和集成测试。我希望您不介意我将
可维护的
更改为
不可维护的
。我大约95%确定这是一个打字错误。我们正在重建该系统(感谢上帝,不是从头开始),我正在将TDD引入工作流,因此我将尽最大努力将事情隔离开来。我希望您不介意我将
可维护的
更改为
不可维护的
。我大约95%确定这是一个打字错误。我们正在重建这个系统(感谢上帝,不是从头开始的),我将TDD引入到工作流程中,所以我将尽我最大的努力使事情保持孤立。