Erste Einführung in die Rückgabedaten der PHPunit-Stub-Simulation
Dies ist eine Kombination aus PHPunit-Dokumentation und Erklärungen von Experten aus dieser Zeit. Ich möchte das Wissen, das ich gelernt habe, aufzeichnen, es in Zukunft als Referenz ergänzen und das Gelernte verbessern.
Wir im Allgemeinen Verwenden Sie Einzeltests, um das Unternehmen zu testen. Testen Sie den Code im Unternehmen, und er wird Ihnen dabei helfen, die kleinen Bereiche zu finden, in denen Ihre Überlegungen nicht umfassend genug sind. (Obwohl Daniel sagte, dass man zuerst Unit-Tests und dann den Implementierungscode schreiben kann, habe ich jetzt das Gefühl, dass ich davon noch weit entfernt bin)
Stub (Stub):
„Die praktische Methode, ein Objekt durch ein Test-Double zu ersetzen, das (optional) einen konfigurierten Rückgabewert zurückgibt, nennt sich Stubbing“ – so lautet die Erklärung des Stubbings in der offiziellen Dokumentation
Jetzt kann ich es Ich verstehe es, wenn ich zurückblicke. Wie soll ich es ausdrücken? Nimm eine Birne.
==== Prämisse
Was ich testen möchte, ist diese Methode: switchClothes($username) ---- Fragen Sie die Datenbank nach Namen ab. Wenn das Geschlecht 1 ist, wird die Hose zurückgegeben werden. Ja 0, den Rock zurückgeben
<?php Class Switch{ public function switchClothes($username){ $database=new database(); $gender=$databse->find("id=$username"); if($gender==0){ return "裙子"; }else{ return "裤子"; } } }
Um die Datenbank abzufragen, habe ich eine Datenbankklasse gekapselt: find()
====Start den Test schreiben
Das erste, was ich testen muss, ist die Klasse switchClothes, aber in dieser Klasse muss ich die Datenbankklasse instanziieren und die Select-Methode verwenden, die Datenbank abfragen und dann herausfinden, ob ich Hosen oder Hosen möchte ein Rock. Es ist also wirklich zu mühsam, die Logik dieser Methode zu testen. Wenn der Benutzername nicht vorhanden ist, muss ich dann zu viel in die Datenbank gehen? Ärger und nicht gut genug. Wenn Sie eine Methode testen müssen, die die Aktualisierung von Daten umfasst, müssen Sie die Daten dann wirklich ändern?
Der Stub ist wunderbar angekommen. Mama muss sich keine Sorgen mehr machen, dass ich die Datenbank bediene, und sie muss sich auch keine Sorgen mehr machen, dass die Benutzeroberfläche unverständlich ist.
Ich kann diese Klasse stoppen. Um es einfach auszudrücken: Ich denke, es handelt sich um eine Simulation dieser Klasse und einer gefälschten Datenbankklasse.
Es ist wie oben: A=switchClothes B=Datenbankklasse D=Datenbank C=Stub-Klasse
Ursprünglich sollte A B anrufen, und B fragt die Datenbank ab. Die rote Linie ist jedoch nicht unter meiner Kontrolle und ich kann sie angeben. )-Methode innerhalb gibt 1 oder 0 zurück. Zumindest aus der Perspektive von A ist es dasselbe wie B. Wie auch immer, es wird für mich 0 oder 1 zurückgeben. Das bedeutet, dass C das System A von B und D isoliert und so die Kopplung verringert.
Dann kann ich mit der Konstruktion des C beginnen, das ich brauche.
Das ist C. Wenn Sie einen Einzeltest machen, nehmen Sie einfach den roten Weg.
<?php use PHPUnit\Framework\TestCase; class StubTest extends TestCase { public function testStub() { // 为database类建立桩件。 $stub = $this->getMockBuilder("database")//类名 ->setMethods(array('find')) //可以是多个方法 ->getMock(); // 配置桩件。 $stub->method('find')//想要设置返回值的方法 ->willReturn(0);//设置返回值 // 现在调用 $stub->select() 将返回 '裙子'。 $this->assertEquals('裙子', $stub->find()); } } ?>
alle

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

