Heim 类库下载 PHP类库 Erste Einführung in die Rückgabedaten der PHPunit-Stub-Simulation

Erste Einführung in die Rückgabedaten der PHPunit-Stub-Simulation

Oct 09, 2016 am 11:12 AM

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 "裤子";
                }
            }
        }
Nach dem Login kopieren

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.

Erste Einführung in die Rückgabedaten der PHPunit-Stub-SimulationIch 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(&#39;find&#39;)) //可以是多个方法
                              ->getMock();

        // 配置桩件。
        $stub->method(&#39;find&#39;)//想要设置返回值的方法
             ->willReturn(0);//设置返回值 

        // 现在调用 $stub->select() 将返回 &#39;裙子&#39;。
        $this->assertEquals(&#39;裙子&#39;, $stub->find());
    }
}
?>
Nach dem Login kopieren

alle

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)