php单元测试进阶(4)- 入门 - 使用参数化测试
本系列文章主要代码与文字来源于《单元测试的艺术》,原作者:Roy Osherove。译者:金迎。
本系列文章根据php的语法与使用习惯做了改编。所有代码在本机测试通过。如转载请注明出处。
观察测试代码,发现其实可以合并,代码会精简很多,只需由另一个方法提供参数。
<?php
namespace tests\index\controller;
class LogAnalyzerTest extends \think\testing\TestCase
{
/**
* @test
* @dataProvider isValidFileName_Provider
* 注意,尽量使得测试的方法名称有意义,这非常重要,便于维护测试代码。有规律
*/
public function isValidFileName_VariousExtensions_ChecksThem($filename, $boo)
{
$analyzer = new \app\index\controller\LogAnalyzer();
$result = $analyzer->isValidLogFileName($filename);
$this->assertEquals($result, $boo);
}
public function isValidFileName_Provider()
{
return array(
array("file_with_bad_extension.foo", false),
array("file_with_good_extension.slf", true),
array("file_with_good_extension.SLF", true),
);
}
}
cmd下,执行测试,通过。
上一篇:
php单元测试进阶(3)- 入门 - 添加检验
下一篇:
php单元测试进阶(5)- 入门 - 异常测试
分享到:
相关推荐
根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍与shell脚本相关的知识点,内容涵盖从入门到进阶的多个方面。 ### Shell 脚本自动化批量系统初始化 在自动化批量系统初始化方面,shell脚本能够实现一...
- **SQL注入攻击**:如何避免SQL注入攻击,使用预处理语句或参数化查询。 - **密码加密**:对用户密码进行加密存储。 ##### 4. 实例开发 - **用户注册登录系统**:实现用户注册、登录功能,并进行相应的数据验证。 ...
9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用...
控制器方法通常接收请求参数,并调用模型或服务处理业务逻辑,最后返回视图或者响应数据。 5. **模型与数据库** Laravel提供了Eloquent ORM,简化了数据库操作。通过`php artisan make:model Post`创建一个模型,...
9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用...
9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用...
9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用...
【PHP进阶篇】 1. OOP(面向对象编程):理解类与对象的概念,学习类的定义、对象的创建、继承、封装、多态等OOP特性。 2. 异常处理:深入学习PHP的异常处理机制,如何抛出和捕获异常,以及自定义异常类。 3. PDO...
9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用...
- 使用预处理语句或参数化查询。 - **防止XSS攻击** - 对输出进行适当的转义处理。 通过以上知识点的学习,初学者可以快速掌握PHP的基本概念和技术要点,为进一步深入学习和实际项目开发打下坚实的基础。
在安全测试方面,理解OWASP TOP 10安全漏洞是关键,包括SQL注入、跨站脚本攻击、不安全的直接对象引用等,这需要配合使用如Selenium进行Web应用自动化测试,LoadRunner进行性能测试,以及进行渗透测试以确保系统的...
- **SQL注入防护**:使用预处理语句或参数化查询避免SQL注入攻击。 - **会话管理**:安全的会话启动、维护和销毁策略。 - **密码加密**:使用哈希算法对用户密码进行加密存储。 ##### 4. 性能优化 - **缓存技术**:...
### 八、PHP进阶话题 1. **模板引擎**:如Smarty,用于分离前端展示和后端逻辑,提高代码可维护性。 2. **MVC框架**:如Laravel、Symfony,提供结构化的开发模式,提升开发效率。 3. **PHP缓存技术**:如APC、...
你需要学习如何防止SQL注入,使用预处理语句或参数化查询,以及如何对用户输入进行适当的过滤和验证。 7. **MVC模式**:模型-视图-控制器(MVC)是一种常见的Web应用架构模式,可以帮助你更好地组织代码。理解MVC的...
华为工程师的总结从Linux的入门到精通分为基础篇、进阶篇和高级篇,旨在帮助读者全面掌握Linux运维技能。 1. **Linux基础篇**: - **Linux快速入门**:涵盖Linux的基本概念、工作原理以及初识命令行界面。 - **...
阿里云提供了多种配置方案以满足不同用户需求,如入门型、进阶型、通用型和理想型。这些配置主要基于CPU核数、内存大小和带宽,适用于不同规模的网站、开发环境或计算密集型任务。用户可以根据实际需求选择,若后期...
本文档旨在引导有兴趣为 PHP 开发扩展的开发者入门。假设读者已经熟悉 PHP 语言和 C 语言的基础知识。 ##### 扩展的概念 - **定义**:扩展是 PHP 的一部分,它们包含了一系列的函数,用于提供额外的功能或性能优化...
- 防止SQL注入:始终使用预处理语句或参数化查询。 7. 实战案例: - 用户注册与登录系统:创建用户表,实现用户注册、登录、密码找回等功能。 - 数据展示:通过PHP动态生成网页,显示数据库中的数据。 - 表单...