单元测试phpunit安装的使用实例(转自CSDN)

一、配置phpunit
1、到phpunit官网下载相应的版本,我的是php 5.6,选择phpunit 4.8:https://phar.phpunit.de/phpunit-old.phar,并把名字改为 phpunit.phar
2、把phpunit.phar放到项目目录app_api下,然后将项目目录D:\webroot\app_api添加到环境变量,以便直接使用phpunit测试
3、按快捷键 Win + R ,输入cmd并回车,进入存放phpunit.phar的路径,输入 echo @php “%~dp0phpunit.phar” %* > phpunit.cmd 并回车,接着输入 phpunit –version 查看版本(如果有误,再试一次)

D:\>cd wamp/

D:\wamp>cd www/api

D:\wamp\www\api>echo @php "%~dp0phpunit.phar" %* > phpunit.cmd

D:\wamp\www\api>phpunit --version
PHPUnit 4.8.36 by Sebastian Bergmann and contributors.

 

二、使用phpunit进行测试
1、使用phpunit,必须使用类 ,简单以login.php为例
<?php

error_reporting(0);

require_once './classes/class_login.php';

$username = $_POST["username"];

$password = $_POST["password"];

$log = new Login;

$response = $log->login($username, $password);

if ($response != "false") {

//登录成功后的处理......

}

echo $response;

?>
2、新建文件夹 classes,并在里面新建 class_login.php ,内容为
<?php

class Login {

// 测试工具PHPUnit要求一定要在这里给变量默认值,于是默认为空。

public function login($username = "", $password = "") {

$con = mysqli_connect("localhost", "root", "123456", "big-bak");

if (!$con) {

die('Could not connect: ' . mysqli_error());

} else {

mysqli_query($con, "SET NAMES utf8");

$result = mysqli_query($con, "SELECT id,username,email FROM ih_user where username = '$username' and password = '$password'");

if (!$result || mysqli_num_rows($result) == 0) {

return "false";

} else {

$result_arr = mysqli_fetch_assoc($result);

return json_encode($result_arr, JSON_UNESCAPED_UNICODE);

}

}

}

}

?>
3、开始写测试文件 login_test.php
<?php

require_once dirname(__FILE__) . '/classes/class_login.php';

class LoginTest extends PHPUnit_Framework_TestCase {

public function testLoginSuccess() {

$expected = '{"id":"1","username":"test","email":"test100@163.com"}';

$username = 'test';

$password = '123456';

$lg = new Login;

$actual = $lg->login($username, $password);

$this->assertEquals($expected, $actual);

}

function testLoginFail() {

$expected = 'false';

$username = '11111';

$password = '11111';

$lg = new Login;

$actual = $lg->login($username, $password);

$this->assertEquals($expected, $actual);

}

}

?>


4、执行phpunit单元测试
正常测试:
将用户test的密码故意修改错再测试:
———————
来源:CSDN
原文:https://blog.csdn.net/nuli888/article/details/51864604

发表评论

电子邮件地址不会被公开。 必填项已用*标注