In der PHP -Entwicklung ist Str_split eine sehr häufige String -Funktion, die zum Aufteilen von Zeichenfolgen in Arrays verwendet wird. Jedes Array -Element enthält ein Zeichen der ursprünglichen Zeichenfolge. Normalerweise möchten wir Unit -Tests für unseren Code schreiben, um sicherzustellen, dass seine Funktionalität wie erwartet funktioniert. In diesem Artikel wird in PHP in Einheitstests für die Funktion der STR_SPLIT -Funktion eingebracht und einige gemeinsame Testszenarien angezeigt.
Lassen Sie uns zunächst schnell die grundlegende Verwendung der Str_split -Funktion überprüfen. Die STR_SPLIT -Funktion spaltet die Zeichenfolge in Substrings der angegebenen Länge und gibt ein Array zurück. Die grundlegende Syntax ist wie folgt:
array str_split ( string $string [, int $length = 1 ] )
$ String : Die Eingabezeichenfolge, die gespalten wird.
$ Länge (optional): Die Länge jedes Substrings, Standard auf 1.
$string = "HelloWorld";
$split = str_split($string, 2);
print_r($split);
Ausgabe:
Array
(
[0] => He
[1] => ll
[2] => oW
[3] => or
[4] => ld
)
In diesem Beispiel teilt Str_split die Zeichenfolge "HelloWorld" in ein Array in einer Gruppe von zwei Zeichen auf.
Um Unit -Tests zu schreiben, müssen wir zunächst Phpunit installieren, ein Standard -Unit -Test -Framework für PHP. Sie können Phpunit über den Komponisten installieren:
composer require --dev phpunit/phpunit
Nach Abschluss der Installation können wir Phpunit über die Befehlszeile ausführen, um unsere Unit -Tests durchzuführen.
Als nächstes schreiben wir eine Phpunit -Testklasse, um das Verhalten der Str_split -Funktion zu testen. Der Einfachheit halber erstellen wir eine grundlegende Testklasse und schreiben Testmethoden für mehrere gemeinsame Testszenarien.
Erstellen Sie zunächst eine Testdatei Strsplittest.php :
<?php
use PHPUnit\Framework\TestCase;
class StrSplitTest extends TestCase
{
// prüfen str_split Grundfunktionen
public function testBasicFunctionality()
{
$result = str_split("HelloWorld", 2);
$expected = ['He', 'll', 'oW', 'or', 'ld'];
$this->assertEquals($expected, $result);
}
// prüfen传递空字符串时的返回值
public function testEmptyString()
{
$result = str_split("", 2);
$this->assertEquals([], $result);
}
// prüfen传递单字符字符串时的返回值
public function testSingleCharacterString()
{
$result = str_split("A");
$this->assertEquals(['A'], $result);
}
// prüfen使用默认长度 1 Die Situation
public function testDefaultLength()
{
$result = str_split("Hello");
$expected = ['H', 'e', 'l', 'l', 'o'];
$this->assertEquals($expected, $result);
}
// prüfen长度大于字符串长度时的行为
public function testLengthGreaterThanString()
{
$result = str_split("Hi", 10);
$this->assertEquals(['Hi'], $result);
}
// prüfen没有传递长度参数时,Verwenden Sie das Standardverhalten
public function testWithoutLength()
{
$result = str_split("abcdef");
$this->assertEquals(['a', 'b', 'c', 'd', 'e', 'f'], $result);
}
}
testbasicfunctionality : testet die Aufteilung von Standardzeichenfolgen.
TestEmptyString : Um den Fall einer leeren Zeichenfolge zu testen, sollte ein leeres Array zurückgegeben werden.
TestSingLecharacterString : Testen Sie eine Zeichenfolge mit nur einem Zeichen.
TestDefaultLength : Testen Sie, ob die Zeichenfolge standardmäßig aufgeteilt werden soll, wenn keine Länge bereitgestellt wird.
TestLengthGreaterthanstring : Testen Sie, ob nur eine vollständige Zeichenfolge zurückgegeben wird, wenn die geteilte Länge größer als die Zeichenfolgelänge ist.
Test ohne Länge : Testen Sie, ob Sie nach der Standardlänge 1 geteilt werden sollen, wenn die Länge nicht übergeben wird.
Nach Abschluss der oben genannten Testklasse können Sie Phpunit verwenden, um Unit -Tests auszuführen. Öffnen Sie das Terminal, geben Sie das Projektverzeichnis ein und führen Sie den folgenden Befehl aus:
./vendor/bin/phpunit StrSplitTest.php
Wenn alles einwandfrei funktioniert, sollten Sie die folgende Testausgabe sehen, die anzeigt, dass alle Tests bestanden wurden:
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.
......
Time: 00:00.029, Memory: 6.00 MB
OK (6 tests, 6 assertions)
Durch das Schreiben von Unit -Tests können wir sicherstellen, dass die Funktion der Str_split in allen Fällen ordnungsgemäß funktioniert. Unit -Tests hilft uns nicht nur, potenzielle Probleme zu entdecken, sondern bietet auch Garantien für das Code -Refactoring. Hoffentlich hilft Ihnen dieser Artikel zu verstehen, wie Sie Unit -Tests für Str_split -Funktionen in PHP schreiben und Ihren Code während der Entwicklung robust halten.