PHP開発では、 str_splitは文字列を配列に分割するために使用される非常に一般的な文字列関数であり、各配列要素には元の文字列の文字が含まれています。通常、コードのユニットテストを作成して、その機能が期待どおりに機能するようにします。この記事では、PHPでSTR_SPLIT機能の単体テストを作成する方法を紹介し、いくつかの一般的なテストシナリオを示します。
まず、 str_split関数の基本的な使用法をすばやく確認しましょう。 str_split関数は、文字列を指定された長さのサブストリングに分割し、配列を返します。基本的な構文は次のとおりです。
array str_split ( string $string [, int $length = 1 ] )
$文字列:分割する入力文字列。
$ length (オプション):各サブストリングの長さ、デフォルト1に1。
$string = "HelloWorld";
$split = str_split($string, 2);
print_r($split);
出力:
Array
(
[0] => He
[1] => ll
[2] => oW
[3] => or
[4] => ld
)
この例では、 str_splitは、2つの文字のグループの文字列「helloworld」を配列に分割します。
ユニットテストを作成するには、まずPHPの標準単位テストフレームワークであるPHPunitをインストールする必要があります。 Composerを介してphpunitをインストールできます。
composer require --dev phpunit/phpunit
インストールが完了したら、コマンドラインを介してphpunitを実行してユニットテストを実行できます。
次に、PHPunitテストクラスを作成して、 STR_SPLIT関数の動作をテストします。簡単にするために、いくつかの一般的なテストシナリオの基本的なテストクラスを作成し、テスト方法を作成します。
まず、テストファイルを作成しましたstrsplittest.php :
<?php
use PHPUnit\Framework\TestCase;
class StrSplitTest extends TestCase
{
// テスト str_split 基本機能
public function testBasicFunctionality()
{
$result = str_split("HelloWorld", 2);
$expected = ['He', 'll', 'oW', 'or', 'ld'];
$this->assertEquals($expected, $result);
}
// テスト传递空字符串时的返回值
public function testEmptyString()
{
$result = str_split("", 2);
$this->assertEquals([], $result);
}
// テスト传递单字符字符串时的返回值
public function testSingleCharacterString()
{
$result = str_split("A");
$this->assertEquals(['A'], $result);
}
// テスト使用默认长度 1 状況
public function testDefaultLength()
{
$result = str_split("Hello");
$expected = ['H', 'e', 'l', 'l', 'o'];
$this->assertEquals($expected, $result);
}
// テスト长度大于字符串长度时的行为
public function testLengthGreaterThanString()
{
$result = str_split("Hi", 10);
$this->assertEquals(['Hi'], $result);
}
// テスト没有传递长度参数时,デフォルトの動作を使用します
public function testWithoutLength()
{
$result = str_split("abcdef");
$this->assertEquals(['a', 'b', 'c', 'd', 'e', 'f'], $result);
}
}
TestBasicFunctionality :標準文字列の分割をテストします。
TestEmptyString :空の文字列のケースをテストするには、空の配列を返す必要があります。
TestSingLecharacterString :文字列をテストします。文字列は1つだけの文字です。
testDefaultLength :長さが提供されていないときにデフォルトの長さ1で文字列を分割するかどうかをテストします。
testLengthGreaterThanstring :分割長が文字列の長さよりも大きい場合に完全な文字列のみが返されるかどうかをテストします。
TestWithOutLength :長さが通過しないときにデフォルトの長さ1に従って分割するかどうかをテストします。
上記のテストクラスを完了した後、Phpunitを使用してユニットテストを実行できます。端末を開き、プロジェクトディレクトリを入力して、次のコマンドを実行します。
./vendor/bin/phpunit StrSplitTest.php
すべてが正常に機能する場合は、すべてのテストが合格したことを示す次のテスト出力が表示されるはずです。
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.
......
Time: 00:00.029, Memory: 6.00 MB
OK (6 tests, 6 assertions)
ユニットテストを作成することにより、すべての場合にSTR_SPLIT機能が適切に機能するようにします。単体テストは、潜在的な問題を発見するだけでなく、コードリファクタリングの保証も提供します。うまくいけば、この記事がPHPでSTR_SPLIT関数のユニットテストを作成し、開発中にコードを堅牢に保つ方法を理解するのに役立つことを願っています。