什么是PHPUnit?在PHP项目中怎么使用?

什么是PHPUnit?在PHP项目中怎么使用?下面本篇文章给大家介绍一下在PHP项目中使用PHPUnit框架进行单元测试的方法,希望对大家有所帮助!

什么是PHPUnit?在PHP项目中怎么使用?下面本篇文章给大家介绍一下在PHP项目中使用PHPUnit框架进行单元测试的方法,希望对大家有所帮助!

什么是PHPUnit?在PHP项目中怎么使用?

UNI-APP开发(仿饿了么)开发课程:进入学习

镜像地址 : PHPUnit简介以及如何在项目中使用 – 多厘(https://wulicode.com/php/vendor/phpunit-at-project/index.html)

官方文档:https://phpunit.readthedocs.io/zh_CN/latest/

单元测试介绍

单元测试是分别对程序的单元(方法, 函数)进行测试,判断执行结果是否符合预期

单元测试能协助开发者什么?

1.确保单元的执行结果

2.尽早发现程序中的错误

3.修改程序, 更加有信心

PHPUnit

PHPUnit 是 PHP 程式语言中最常见的单元测试 (unit testing) 框架,PHPUnit 是参考 xUnit 架构利用 PHP 实作出来。

安装PHPUnit

# 项目中安装
$ composer require –dev phpunit/phpunit

# 下载到本地
$ wget https://phar.phpunit.de/phpunit-9.phar

使用项目中安装可以在项目中直接运行, 无需太多配置, 将 phar 下载到非项目文件夹, 可以减少项目代码的体积, 我一般采用下载到本地, 然后多个项目公用一个 phpunit.phar, 减少项目体积, 不过需要在 IDE中增加更多配置

配置autoload

添加下面的代码到composer.json PackageName是项目的名称,src是包含PHP class文件的文件夹地址,项目根目录下的子文件夹。


;autoload;: {
;psr-4;: {
;PackageName\\;: ;src/;,
;PackageName\\Tests;: ;tests/;
}
},

设置PHPUnit

在phpstorm中 Languages & Frameworks >PHP >Test Frameworks 根据不同的加载方式设置不同的配置

什么是PHPUnit?在PHP项目中怎么使用?

如果是项目额外加载, 则需要把 phpunit 所在的文件夹作为 library 加入项目, 便于代码提示 Preferences | Languages & Frameworks | PHP , 加入 phpunit 文件夹

什么是PHPUnit?在PHP项目中怎么使用?

编写PHPUnit测试

  • 针对类 Example 的测试写在类 ExampleTest 中, ExampleTest 继承自 TestCase

  • 对于方法的测试命名为 test* 的公用方法

  • 在测试方法内,类似于 assertEquals() 的断言方法用来对实际值和预期值的匹配做出验证

ArrayTest 用 PHPUnit 测试数组操作

<?php
use PHPUnit\Framework\TestCase;

class ArrayTest extends TestCase
{
public function testPushAndPop()
{
$stack = [];
$this->assertCount(0, $stack);

$stack[] = ;foo;;
$this->assertEquals(;foo;, $stack[count($stack) – 1]);
$this->assertCount(1, $stack);

$this->assertEquals(;foo;, array_pop($stack));
$this->assertCount(0, $stack);
}
}

在 IDE 中运行

  • 点击方法名称
  • 右键测试类
  • 右键测试文件夹

什么是PHPUnit?在PHP项目中怎么使用?

PHPUnit 断言

laravel 中除了标准的 PHPUnit 断言(assertEquals(), assertContains(), assertInstanceOf(), …更多断言请看https://phpunit.readthedocs.io/zh_CN/latest/assertions.html?highlight=assertTrue#)之外, 还存在很多允许测试 web 应用的检测项目

assertPageLoaded($uri, $message = null)

检测最近的页面是否被加载, 如果不存在 url / message 时候会报错

assertResponseOk()

是否页面相应OK

assertReponseStatus($code)

是否响应指定的code

assertViewHas($key, $value = null)

视图中是否存在指定的数据

assertViewHasAll($bindings)

视图中是否存在指定的一系列数据

assertViewMissing($key)

指定视图中是否不存在这个数据

assertRedirectedTo($uri, $with = [])

检测是否重定向到指定的uri

assertRedirectedToRoute($name, $parameters = [], $with = [])

是否客户端重定向到指定的路由

assertRedirectedToAction($name, $parameters = [], $with = [])

是否重定向到 action

assertSessionHas($key, $value = null)

session 中是否存在 key/ value

assertSessionHasAll($bindings)

session 中是否存在指定的 kv

assertSessionHasErrors($bindings = [])

session 是否存在错误

assertHasOldInput()

session 中是否存在以前的数据

示例 xml 文件

phpunit.xml at 9.x · laravel

https://github.com/laravel/laravel/blob/9.x/phpunit.xml

<?xml version=;1.0; encoding=;UTF-8;?>
<phpunit xmlns:xsi=;http://www.w3.org/2001/XMLSchema-instance;
xsi:noNamespaceSchemaLocation=;./vendor/phpunit/phpunit/phpunit.xsd;
bootstrap=;vendor/autoload.php;
colors=;true;>
<testsuites>
<testsuite name=;Unit;>
<directory suffix=;Test.php;>./tests/Unit</directory>
</testsuite>
<testsuite name=;Feature;>
<directory suffix=;Test.php;>./tests/Feature</directory>
</testsuite>
</testsuites>
<coverage processUncoveredFiles=;true;>
<include>
<directory suffix=;.php;>./app</directory>
</include>
</coverage>
<php>
<env name=;APP_ENV; value=;testing;/>
<env name=;BCRYPT_ROUNDS; value=;4;/>
<env name=;CACHE_DRIVER; value=;array;/>
<!– <env name=;DB_CONNECTION; value=;sqlite;/> –>
<!– <env name=;DB_DATABASE; value=;:memory:;/> –>
<env name=;MAIL_MAILER; value=;array;/>
<env name=;QUEUE_CONNECTION; value=;sync;/>
<env name=;SESSION_DRIVER; value=;array;/>
<env name=;TELESCOPE_ENABLED; value=;false;/>
</php>
</phpunit>Php 的单元覆盖率

安装 xdebug / Phpunit

# 安装 xdebug
$ pecl install xdebug

启用 xdebug

# php.ini 文件
xdebug.mode = coverage

什么是PHPUnit?在PHP项目中怎么使用?

什么是PHPUnit?在PHP项目中怎么使用?

php怎么判断字符串中有某几个字符

原创2022-04-26 17:02:031154 + php学习QQ群:609135716

判断方法:1、使用“str_split($str)”语句将字符串转化成字符数组;2、使用“array_unique($arr)”语句去除数组中的重复字符;3、使用“count(去重数组)”语句统计去重后的数组长度,即可获取不同字符的个数。

什么是PHPUnit?在PHP项目中怎么使用?

php零基础到就业直播视频课:进入学习程序员必备接口测试调试工具:立即使用

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php判断字符串中有某几个字符,就是判断字符串中有哪些不同字符。下面给大家介绍一下判断方法。

实现方法:

1、使用str_split()函数来将字符串转化成字符数组

<?php
$str = 'absd346d182831';
$arr=str_split($str);
var_dump($arr);
?>

什么是PHPUnit?在PHP项目中怎么使用?

2、使用array_unique()函数去除重复字符

$newarr=array_unique($arr);
var_dump($newarr);

什么是PHPUnit?在PHP项目中怎么使用?

会返回一个新数组,该数组的键值就是字符串中不重复的字符。

3、使用count()函数统计去重后的数组长度,即可知道字符串中不同字符的个数。

echo count($newarr);

什么是PHPUnit?在PHP项目中怎么使用?

以上就是php怎么判断字符串中有某几个字符的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/23947/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年9月20日 下午12:48
下一篇 2022年9月20日 下午12:51
软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!