`
xieye
  • 浏览: 830785 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php单元测试进阶(3)- 入门 - 添加检验

    博客分类:
  • PHP
阅读更多
php单元测试进阶(3)- 入门 - 添加检验

本系列文章主要代码与文字来源于《单元测试的艺术》,原作者:Roy Osherove。译者:金迎。

本系列文章根据php的语法与使用习惯做了改编。所有代码在本机测试通过。如转载请注明出处。

现在看,发现原代码写的不太好,因为后缀应该是忽略大小写的。
按照TDD的工作顺序,我们先修改测试类代码如下:
<?php
namespace tests\index\controller;

class LogAnalyzerTest extends \think\testing\TestCase
{

    /**
     * @test
     * 注意,尽量使得测试的方法名称有意义,这非常重要,便于维护测试代码。有规律
     */
    public function isValidFileName_BadExtension_RetrunFalse()
    {
        $analyzer = new \app\index\controller\LogAnalyzer();
        $result = $analyzer->isValidLogFileName("file_with_bad_extension.foo");
        $this->assertFalse($result);
    }

    /**
     * @test
     */
    public function isValidFileName_GoodExtensionLowercase_RetrunTrue()
    {
        $analyzer = new \app\index\controller\LogAnalyzer();
        $result = $analyzer->isValidLogFileName("file_with_good_extension.slf");
        $this->assertTrue($result);
    }

    /**
     * @test
     */
    public function isValidFileName_GoodExtensionUppercase_RetrunTrue()
    {
        $analyzer = new \app\index\controller\LogAnalyzer();
        $result = $analyzer->isValidLogFileName("file_with_good_extension.SLF");
        $this->assertTrue($result);
    }
}

执行测试,发现有一个测试未通过。这符合我们的预期。
现在修改原代码如下
if (!preg_match('/\.SLF$/i', $filename)){
     return false;
 }

再次执行测试,通过。

上一篇:php单元测试进阶(2)-入门
下一篇:php单元测试进阶(4)- 入门 - 使用参数化测试

分享到:
评论

相关推荐

    PHP语言入门教程-学习了PHP的基础语法、案例示例和进阶内容

    #### 五、PHP进阶内容 ##### 5.1 面向对象编程 PHP从版本5开始全面支持面向对象编程(OOP),包括类、对象、继承、接口、抽象类等概念。面向对象编程提供了一种更高级别的抽象,有助于提高代码的复用性和维护性。 ...

    PHP基础入门学习资料大全(共28个)

    3. **《PHP和MySQL5从入门到精通》技术文档** - **简介**:结合PHP与MySQL数据库的应用教程。 - **核心内容**: - MySQL基本操作 - PHP连接MySQL - 查询优化 - 安全性和性能考虑 4. **《Web开发入门经典--...

    PHP 7从入门到精通(视频教学版)_刘增杰,张工厂编著

    《PHP 7从入门到精通》是一本专为初学者和有一定基础的开发者设计的教程,由刘增杰和张工厂两位资深IT专家编著。这本书结合了视频教学,为学习者提供了全方位、深入浅出的PHP 7学习资源。PHP 7作为PHP语言的一个重要...

    shell入门到进阶,脚本机动化

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍与shell脚本相关的知识点,内容涵盖从入门到进阶的多个方面。 ### Shell 脚本自动化批量系统初始化 在自动化批量系统初始化方面,shell脚本能够实现一...

    一本关于PHP入门资料

    5. **PHP进阶** - **PHP函数**: 掌握常用PHP内置函数,如字符串处理、数组操作、文件系统操作等。 - **面向对象编程(OOP)**: 学习类、对象、继承、封装和多态等概念,使PHP代码更加模块化和易于维护。 - **性能...

    php笔记-欢迎增加

    本篇PHP笔记涵盖了从基础到进阶的知识点,适合初学者和有一定基础的开发者参考学习。主要内容包括简单的“Hello World”示例、网页内容抓取技巧、编码转换方法、缓存逻辑设计、数据解析方式、Ajax与PHP之间的交互、...

    PHP入门课程

    通过本课程,你将具备开发动态网站的能力,为进一步深入学习PHP进阶知识和Web开发技术打下坚实基础。记住,实践是检验学习效果的最好方式,所以不仅要阅读理论,还要动手编写代码,解决实际问题。祝你在PHP的学习...

    Dreamweaver入门.pdf

    ### Dreamweaver 入门知识点详解 #### 一、Dreamweaver简介与功能概述 **Dreamweaver**是一款由Adobe公司开发的专业网页设计与开发工具,它提供了强大的可视化编辑环境和代码编辑器,帮助用户创建复杂的网站和应用...

    php十日通 php十日速成

    其简洁的语法和强大的功能使得初学者能在短时间内入门并逐渐精通。本文将根据“PHP十日通”教程,介绍PHP的基础知识,包括语法、变量、运算符以及流程控制,帮助你快速理解并掌握PHP。 1. PHP语法基础: PHP代码...

    PHP从入门到精通书中源码

    这本书通过实例的方式,系统地介绍了PHP的基础知识、进阶技巧以及实战应用,旨在让读者从零开始逐步成长为PHP开发的专家。在提供的压缩包文件中,包含了书中所有实例的源代码,这将有助于读者更直观地理解并实践书中...

    最好的php5入门教程

    这篇教程将帮助初学者从零基础开始学习PHP5,掌握基本的编程概念以及进阶技巧。 首先,PHP(Hypertext Preprocessor)是一种广泛用于Web开发的开源脚本语言,它嵌入在HTML中,可以方便地创建动态网页内容。PHP5对...

    细说php16-20章

    《细说PHP 16-20章》是针对初学者的一份优秀的PHP入门教程,深受读者喜爱。在这个阶段的学习中,你将深入理解PHP语言的核心概念和实用技能,为成为一名合格的PHP开发者打下坚实基础。以下是这五个章节涵盖的主要知识...

    毕设&课设&项目&实训-基于乐鑫科技M5 GO和歪朵拉 AIRV r2的家用水表检测物联网检测设备.zip

    毕设&课设&项目&实训-东南大学第一届物联网设计竞赛:基于乐鑫科技M5 GO和歪朵拉 AIRV r2的家用水表检测物联网检测设备所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通...

    PHP快速开发工具箱.rar

    10. **测试框架**:PHPUnit是PHP的主要单元测试框架,可能包括测试驱动开发(TDD)和行为驱动开发(BDD)的实践指导。 11. **文档生成工具**:如Sphinx或ApiGen,自动生成API文档,方便团队成员理解和使用代码库。 ...

    PHP By Examples

    本书《PHP By Examples》全面介绍了 PHP 编程的基础知识、进阶技巧以及实用案例。通过对 PHP 语言的深入探索,读者不仅可以学会如何编写简单的 Web 应用程序,还能掌握更为复杂的概念和技术。无论是新手还是有经验的...

    毕设&课设&项目&实训-基于C51单片机的智能温湿度检测系统.zip

    项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。欢迎...

    Swoole入门教程及文档

    * 心跳检测:Swoole提供了心跳检测机制,用于检测worker进程的存活状态。 三、Swoole多端口监听 * 监听多个端口:Swoole可以监听多个端口,用于同时处理多个请求。 * 热重启:Swoole提供了热重启机制,允许开发者...

    PHP中文最新教程,PHP教程

    3. **控制结构**:掌握条件语句(如if...else、switch...case)和循环语句(如for、while、do...while、foreach)的用法,以及如何进行逻辑运算。 4. **函数**:了解PHP内置函数的使用,以及如何自定义函数,包括...

Global site tag (gtag.js) - Google Analytics