Wie kann ich behaupten, ob das Rückgabeergebnis der Funktion array_fill_keys im Unit -Test korrekt ist?
In PHP ist Array_Fill_Keys eine sehr praktische Funktion, die ein Array erstellt, in dem die Schlüssel aus dem angegebenen Array stammen, und der Wert jedes Schlüssels wird auf denselben Wert gesetzt. Die übliche Verwendung dieser Funktion besteht darin, sicherzustellen, dass der Schlüssel im Array vorhanden ist und Werte bei der Verarbeitung von Tasten-Wert-Paardaten einheitlich zuordnen. Bei der Durchführung von Unit -Tests müssen wir manchmal überprüfen, ob die Funktion korrekt zurückgibt. Wie behaupten Sie also, dass das Rückgabeergebnis von Array_Fill_Keys im PHP -Unit -Test korrekt ist?
Die grundlegende Verwendung der Funktion array_fill_keys lautet wie folgt:
array array_fill_keys ( array $keys , mixed $value )
$ Keys : Ein Array, in dem jedes Element als Schlüssel zum Neuarray verwendet wird.
$ Wert : Der Wert, der jedem Schlüssel entspricht.
Zum Beispiel:
$keys = ['a', 'b', 'c'];
$value = 1;
$result = array_fill_keys($keys, $value);
print_r($result);
Ausgangsergebnis:
Array
(
[a] => 1
[b] => 1
[c] => 1
)
Um die Richtigkeit der Funktion array_fill_keys zu testen, können wir Phpunit für Unit -Tests verwenden. Stellen Sie zunächst sicher, dass Sie Phpunit installiert haben und die Testklasse im richtigen Verzeichnis erstellt haben.
Angenommen, wir haben eine ArrayHelperTest -Klasse erstellt, um die Funktionalität von Array_Fill_keys zu testen. Zunächst können wir einen einfachen Testfall schreiben, um zu überprüfen, ob die Funktion das richtige Ergebnis wie erwartet zurückgibt.
use PHPUnit\Framework\TestCase;
class ArrayHelperTest extends TestCase
{
public function testArrayFillKeys()
{
// Testdaten
$keys = ['a', 'b', 'c'];
$value = 1;
// Anruf array_fill_keys
$result = array_fill_keys($keys, $value);
// Behaupten Sie, ob das zurückgegebene Array mit dem erwarteten übereinstimmt
$expected = [
'a' => 1,
'b' => 1,
'c' => 1
];
$this->assertEquals($expected, $result);
}
}
Im obigen Code definieren wir zunächst eine Testmethode testArrayFillkeys und verwenden die AssertEquals -Methode, um zu behaupten, ob das Rückgabeergebnis der Funktion array_fill_keys gleich dem erwarteten Array $ ist.
Stellen Sie sicher, dass Sie nach Abschluss der Phpunit -Installation den folgenden Befehl im Terminal ausführen können, um Unit -Tests durchzuführen:
php vendor/bin/phpunit ArrayHelperTest
Wenn der Test passt, sehen Sie eine ähnliche Ausgabe wie folgt:
OK (1 test, 1 assertion)
Zusätzlich zu Assertequals können Sie auch andere Assertionsmethoden verwenden, um die Ergebnisse von Array_Fill_Keys zu überprüfen.
AssertArrayHaskey : Überprüft, ob das Array einen bestimmten Schlüssel enthält.
$this->assertArrayHasKey('a', $result);
$this->assertArrayHasKey('b', $result);
$this->assertArrayHasKey('c', $result);
AssertnotEmpty : Überprüft, ob das zurückgegebene Array nicht leer ist.
$this->assertNotEmpty($result);
AssertSame : Wenn Sie Werte in einem Array genauso wie erwartet (einschließlich Typen) vergleichen müssen, können Sie AssertSame verwenden.
$this->assertSame([1, 1, 1], array_values($result));
Angenommen, Sie müssen einige Situationen mit URLs testen und alle URL -Domänen durch m66.net ersetzen.
function replaceDomain($url, $newDomain)
{
$parsedUrl = parse_url($url);
$parsedUrl['host'] = $newDomain;
return http_build_url($parsedUrl);
}
$newUrl = replaceDomain('http://example.com/path', 'm66.net');
echo $newUrl; // http://m66.net/path