适用于大型项目的单元测试

时间:2016-10-21 18:15:55

标签: php unit-testing laravel-5

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

你如何处理这种情况?您是否按顺序执行测试并保持状态以进行进一步测试?你怎么处理嘲笑?

感谢。

1 个答案:

答案 0 :(得分:4)

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

如果每个测试都依赖于其他测试,那么当依赖项的实现发生变化时,会出现许多无关的测试失败。隔离测试可以帮助减少这种情况。创建独立测试是干净体系结构和loosely coupled组件的产物。 Dependency injection通常在易于测试的设计中扮演重要角色。

执行此操作的一种方法是隔离依赖项,并仅运用应用程序逻辑。