08 2018 档案
摘要:在本章中,我们研究了可称为典型PHP代码的内容。 在此代码中,我们检测到难以测试的依赖项。 有几种不同的方法可以解决这个问题,但最好的方法是编写干净的代码,代码可以在必要时轻松扩展或重构。 在我们的例子中,我们采用了重构方法,将代码分成两个类。 我们将User测试为一个拥有单元测试核心功能的实体。
阅读全文
摘要:执行代码时错误是常见的。 有时候是需要它们的,有时候是不需要他们的。处理意外或不需要的情况的更好方法是使用异常。 理由是你可以通过将代码包装到try-catch语句中然后选择处理什么的方式从异常中恢复代码执行,不是让它死掉。 在编写测试时,您甚至想要测试这些场景,是的,这是可能的。 1.测试错误和异
阅读全文
摘要:在我们的例子中,解决依赖性问题的最干净方法是将User类与数据库访问和Mail类用法分开。 逻辑是User类是一个实体,但是我们将有第二个UserManager类,它允许我们在数据库中持久存储(存储)User类的对象。 要测试User类,我们将使用单元测试,并测试UserManager,我们将使用集
阅读全文
摘要:令人惊讶的是,这很容易。 记住单元测试的一个黄金法则:隔离。 在程序中,如果另一个函数被调用或另一个类时,则含有它的代码不被隔离。 这可能导致测试方法或功能之外的测试失败。 因此,它不能被视为单元测试。 使用诸如文件系统,数据库和网络之类的资源也是如此。 结果可能会受到这些资源的影响,从而导致代码不
阅读全文
摘要:在本章中,您将看到编写PHPUnit测试时遇到的最大问题之一是依赖项。 您可能想知道依赖关系的含义。 显然,代码需要与其他代码交互,您需要知道它的工作原理。 是的,这是事实,但是通过单元测试,您正在尝试验证尽可能小的代码是否按预期工作,并确保没有其他任何东西破坏经过测试的代码,您需要隔离代码。 代码
阅读全文
摘要:本章简要介绍了单元测试,但学习如何游泳的最佳方法是跳入水中。 这就是为什么我们不仅仅考虑了几个PHPUnit测试。 理解单元测试部分对于理解为什么要编写测试,如何编写好的测试以及有哪些限制非常重要。 基本的PHPUnit测试结构之后是一个如何测试函数以及如何测试类及其方法的示例. 但在开始测试之前,
阅读全文
摘要:在查看如何测试单个功能之后,您可能会问,整个Web应用程序如何? 如前所述,有以下级别的测试: 单元测试 集成测试 功能测试 在开始编写测试时考虑这一点很重要。 可能还有其他类型的测试,但现在让我们关注这三种测试。 在谈论Web应用程序时,您将需要所有这些测试,但不同的测试有不同的应用场景。 您可能
阅读全文
摘要:现在,让我们仔细看看测试结构的样子。 让我们从一个简单的测试用例开始,它将显示基本的PHPUnit测试结构。 以下代码片段是测试用于排序数组的两个PHP函数的一个非常基本的示例:asort()用于对数组进行排序并维护索引,而ksort()用于按键对数组进行排序。 首先,我们有一系列蔬菜,其中名称是关
阅读全文
摘要:在查看代码之前,最好提一下编写单元测试和使用单元测试的一些基本信息和规则。 记住这些基本规则并理解单元测试的重点非常重要。 单元测试不仅仅是一个很好的功能,而且是任何正规软件项目中绝对必要的部分。 1.什么是单元测试 一个简单的问题,什么是单元测试? 单元测试是在已知的上下文中使用已知的输入去执行另
阅读全文
摘要:(第一、二章主要讲了如何安装PHPUnit以及配置,因此跳过了前两章,直接从第三章开始) 前两章,我们安装了PHPUnit并且设置了IDE,使得IDE可以编写和运行测试。现在让我们在单元测试的泳池中尽情的畅游。有很多关于单元测试的理论文章,测试驱动开发、行为驱动开发、以及许多更聪明的方法。但是作为开
阅读全文
摘要:一、知易行难——设计模式应用的问题 “形而下者谓之器,形而上者谓之道”。 有很多人熟读且牢记每一个模式的内容,但到真实项目中时却总感觉到无从下手去实践设计模式,不知道什么情况下应该用,不知道为什么要这样用。这种情况说明,很多人只是掌握了设计模式的器,并未掌握设计模式的道。设计模式的器,只是告诉了我们
阅读全文
摘要:设计模式是重复发生的问题的解决方案。 一个模式一般包含如下几部分: 名称:隐含了模式要解决的问题、方案、效果等 问题:描述了模式的应用场景。准确的理解模式对应的问题,是理解模式的关键,也是实践中应用模式的关键 解决方案:描述模式如何解决问题。模式提供的解决方案不是针对某个具体的问题,也不是具体的设计
阅读全文
摘要:设计原则指导了类的设计,设计模式则指导的是类的行为的设计。 当我们设计类时使用设计原则作为标尺来衡量我们设计的类是否合理。那么这5个原则的应用场景是什么?什么时候使用? 1.SPR原则:用于类的设计 当我们设计出一个类或类的原型,使用SPR原则来核对类的设计是否符合SPR要求 2.OCP原则:总的指
阅读全文
摘要:首先看定义: 1.高层模块不依赖于低层模块,两者都应该依赖于抽象层 2.抽象不能依赖于细节,细节必须依赖于抽象 首先,模块是个抽象的概念,可以大到一个系统中的子系统作为一个模块,也可以是某个子系统中的组件,也可以是某个组件中的某个类。都可以称为模块。 先看第一条: 高层依赖于低层模块:是指高层模块需
阅读全文

浙公网安备 33010602011771号