×

php的测试代码怎么写

php的测试代码怎么写(php的测试代码怎么写出来)

admin admin 发表于2023-03-27 20:35:08 浏览62 评论0

抢沙发发表评论

本文目录一览:

php如何进行单元测试

何为单元测试:

指对软件中的基本单元进行测试,如函数、方法等,以检查其返回值或行为是否符合预期;实际中软件是很复杂的,由许多组件构成,执行流程连贯在一起,要进行单元片段的测试,就需要为其提供执行上下文(或者说参数)和环境(比如打桩模拟一些对象)来运行,并监控其行为和返回值,为此我们就需要写出做这件事情的程序代码,这样的代码叫做测试用例。

许多测试用例有机结合在一起形成一个整体的测试,又叫做测试套件,被测试的程序代码叫做生产代码。phpunit这个软件就是用来帮助我们写测试用例并进行测试的。

php的单元测试:phpunit

在其官网有详细教程,这里介绍一些补充内容。

首先要明白phpunit软件本身就是由php语言实现,其使用是通过命令行进行的,并不是通过浏览器访问

明白这一点很重要,许多新人被卡在这里,很基础也很简单,但似乎没怎么被提及。

在官网下载后得到一个phar文件,同时下载phpunit使用文档,按照里面的安装方法进行安装,之后在命令行输入以下命令:

phpunit --help

如果显示出了帮助信息即安装成功,在命令行当前目录下建立一个测试用例为yunke.php,内容如下:

?phpuse PHPUnit\Framework\TestCase;class yunkeTest extends TestCase{public function testPushAndPop(){$stack = [];$this-assertEquals(0, count($stack));array_push($stack, 'foo');$this-assertEquals('foo', $stack[count($stack) - 1]);$this-assertEquals(1, count($stack));$this-assertEquals('foo', array_pop($stack));$this-assertEquals(0, count($stack));}}?-php的测试代码怎么写

然后在命令行输入以下命令:

phpunit yunke

显示如下内容:

PHPUnit 5.7.12 by Sebastian Bergmann and contributors.. 1 / 1 (100%)Time: 159 ms, Memory: 7.00MBOK (1 test, 5 assertions)-php的测试代码怎么写

恭喜,你已经成功运行了一个单元测试。

我下载了APACHE要测试PHP代码,需要怎么用?

建立一个phpinfo.php

放到你apache指向的目录。再把

?php

phpinfo();?

这小段放到文件里,直接在你的apache下运行就行。

一段php代码该怎么写

根据你的描述,好像是显示产品的一个格式,$a, $id,$num,$money分别是对应各个产品的属性,$count则是计算所有产品的总价值,那么php代码可以这样写:

?php

$a = explode('|', '610|629');

$id = explode('|', '3171|2486');

$num = explode('|', '8|5');

$money = explode('|', '1|1');

$count = 0;

$totalNum = count($a);

echo count($a) . "br";

$str = "{";

for ($i = 0; $i $totalNum; $i++) {

/*

$str .= '\"';

$str .= $a[$i];

$str .= '\":{\"id\":';

$str .= $id[$i];

$str .= ',';

$str .= '\"num\":';

$str .= $num[$i];

$str .= ',\"money\":';

$str .= $money[$i];

$str .= '},';

*/

$str .= sprintf('\"%d\":{\"id\":%d,\"num\":%d,\"money\":%d},', $a[$i], $id[$i], $num[$i], $money[$i]);-php的测试代码怎么写

$count += ($num[$i] * $money[$i]);

}

$str .= '\"Count\":';

$str .= $count;

$str .= '}';

echo $str;

thinkphp怎么用phpunit写测试用例

测试用例

本例中,根目录的index.php的配置如下:

?php    

define('APP_NAME', 'example');    

define('APP_PATH', '../example/');    

define('APP_PHPUNIT', false);    

define('APP_DEBUG', true);    

require('../ThinkPHP/ThinkPHP.php');    

?

首次访问之后,生成以下目录结构:

在example站点中新建文件夹,命名为“Testcase”。

测试Model

创建HelloModel.class.php:

?php    

     

class HelloModel extends Model    

{    

    public function sayHello()    

    {    

        print 'Hello';    

        return 'Hello';    

    }    

}

在Test文件夹中新建Test.php文件作为PHPUnit,其中注意require ThinkPHP作为初始化框架环境,另外在Think.class.php中,修改

start()函数中,App::run()为 !APP_PHPUNIT App::run();

该区分站点运行与测试用例。

?php    

define('APP_NAME', 'example');    

define('APP_PATH', './../../example/');    

define('APP_PHPUNIT', true);    

require('./../../ThinkPHP/ThinkPHP.php');    

class TestSayHello extends PHPUnit_Framework_TestCase {    

     

    public function setUp() { }    

     

    public function tearDown(){ }    

     

}

在TestSayHello中加入测试用例:

public function testHelloModel()    

{    

    $hello = D('Hello');    

    $this-assertTrue( $hello-sayHello('Hello') == 'Hello');    

}

测试Action

修改IndexAction.class.php如下:

?php    

class IndexAction extends Action    

{    

    public function index()    

    {    

        $hello = D("Hello");    

        return $hello-sayHello();    

    }    

}

浏览器访问Index效果:

在TestSayHello中加入测试用例:

public function  testHelloAction()    

{    

    $hello = new IndexAction();    

    $this-assertTrue($hello-index() == 'Hello');    

}

运行效果

运行Test.php效果如下:

Test通过,至此给ThinkPHP加上了单元测试。