ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でインターフェースのテストを実行するにはどうすればよいですか?

ThinkPHP6 でインターフェースのテストを実行するにはどうすればよいですか?

王林
王林オリジナル
2023-06-12 12:31:401530ブラウズ

インターネット技術の急速な発展に伴い、インターフェイステストはソフトウェア開発プロセスにおいてますます不可欠な部分になってきています。 ThinkPHP6 は非常に人気のある PHP 開発フレームワークであり、インターフェイスのテストを行う場合、PHPUnit テスト フレームワークを使用してテストできます。この記事では、より便利にテストを実施できるように、ThinkPHP6 でインターフェイス テストを実施する方法を詳しく紹介します。

1. PHPUnit のインストール

PHPUnit はサードパーティのテスト フレームワークであるため、最初に PHPUnit をインストールする必要があります。 Composer をインストールすることで PHPUnit をインストールできます:

  1. ターミナルまたはコマンド ライン インターフェイスを開き、次のコマンドを入力して Composer をインストールします:
$ curl -sS https://getcomposer.org/installer | php
  1. Install PHPUnit:
$ php composer.phar require phpunit/phpunit

インストールが完了したら、インターフェイスのテストを開始できます。

2. テスト ケースを作成する

ThinkPHP6 では、tests フォルダーにテスト ケースを作成できます。次に、最初にテスト ケース フォルダーを作成します:

$ mkdir tests/TestCase

次に、TestCase フォルダーの下にテスト ケース ファイル ApiTest.php を作成します:

$ touch tests/TestCase/ApiTest.php

これで、テスト ケース ファイル ApiTest を作成できます。 ApiTest.php ファイル内の php 単純なインターフェイスのテスト ケースを作成します。テストしたいインターフェイスが /api/user/info で、ユーザーに関する情報を返すと仮定します。次のテスト ケースを作成できます。

<?php

namespace testsTestCase;

use PHPUnitFrameworkTestCase;

class ApiTest extends TestCase
{
    public function testGetUserInfo()
    {
        $url = 'http://localhost/api/user/info';
        $response = file_get_contents($url);
        $this->assertStringContainsString('user_name', $response);
        $this->assertStringContainsString('user_email', $response);
    }
}

このテスト ケースでは、PHPUnit に付属するassertStringContainsString メソッドを使用して、返されたユーザー情報に user_name と user_email の 2 つのフィールドが含まれているかどうかを確認します。両方のフィールドが存在する場合、テストは合格します。

3. テスト環境の構成

インターフェースのテストを行う前に、まずテスト環境を構成する必要があります。次に、テスト環境の構築を例に、ThinkPHP6 でのテスト環境の構築方法を詳しく紹介します。

まず、テスト データを保存するためのテスト データベースを作成する必要があります。 MySQL で次のコマンドを実行してデータベースを作成できます:

$ mysql -u root -p
mysql> CREATE DATABASE test;

次に、データベース構成ファイルを変更し、データベース接続情報を作成したばかりのデータベース接続情報に構成する必要があります。 config/database.php ファイル内のデータベース情報を変更できます:

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'test',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

次に、次の内容を phpunit.xml ファイルに追加します:

<!-- 数据库配置 -->
<php>
    <env name="DB_TYPE" value="mysql" />
    <env name="DB_HOST" value="127.0.0.1" />
    <env name="DB_NAME" value="test" />
    <env name="DB_USER" value="root" />
    <env name="DB_PASS" value="" />
</php>

このようにして、テスト用のテストデータベース。

4. テストの実行

テスト環境が構成されたら、テストを実行できます。コマンド ライン インターフェイスでプロジェクトのルート ディレクトリを入力し、次のコマンドを入力してテストを実行できます:

$ ./vendor/bin/phpunit tests/TestCase/ApiTest.php

テスト ケースが正常に実行されると、次の情報が出力されます:

PHPUnit 9.5.2 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.012, Memory: 6.00 MB

OK (1 test, 2 assertions)

これは私たちのインターフェースを説明しています テストケースはテストに合格しました。テストが失敗した場合、PHPUnit は関連するエラー情報を出力し、エラー情報に基づいて修復を行うことができます。

5. 概要

この記事では、PHPUnit のインストールからテスト ケースの作成、テスト環境の構成とテストの実行まで、ThinkPHP6 でインターフェイス テストを実行する方法を詳しく紹介します。 1つ。 。この記事が困っている読者を助け、インターフェースのテストを行う際に誰もがもっとリラックスして幸せになれることを願っています。

以上がThinkPHP6 でインターフェースのテストを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。