Unit-Testing-Theorie (Fortsetzung): Teil 2
Im letzten Artikel haben wir begonnen, die Theorie des Unit-Tests in WordPress zu diskutieren. Konkret überprüfen wir unsere Arbeit an Unit-Testing-Themen und Plugins, besprechen dann Codeeinheiten und wie sich dies auf unsere Tests auswirkt, und überprüfen Unit-Tests in der größeren Welt der Softwareentwicklung.
Wir werden weiterhin die Theorie des Unit-Tests in WordPress diskutieren, aber aus der Perspektive, wie es dabei helfen kann, Probleme zu identifizieren, Architektur voranzutreiben, Projekte zu dokumentieren und mehr.
Probleme finden und Zeit sparen
Erinnern Sie sich an den Anfang dieser Serie, dass der traditionelle Ansatz für Unit-Tests wie folgt aussieht:
- Schreiben Sie einen Test, führen Sie ihn aus (im Wissen, dass er fehlschlagen wird)
- Schreiben Sie eine Funktion, um diese Methode auszuführen.
- Führen Sie den Test durch. Wenn der Test fehlschlägt, fahren Sie mit der Arbeit an der Funktion fort; andernfalls fahren Sie mit dem nächsten fort.
Ja, der erste Schritt ist etwas dogmatisch. Warum sollten Sie Zeit damit verschwenden, etwas auszuführen, von dem Sie wissen, dass es scheitern wird? Aber Sie verstehen, worauf es ankommt. Aber wenn Sie anfangen, diese spezielle Technik auf die Entwicklung anzuwenden, werden Sie feststellen, dass Sie beim Schreiben von Code einen bestimmten Rhythmus entwickeln, und das ist Teil des Gesamtziels.
Aber das ist nur die Hälfte – Unit-Tests können Ihnen tatsächlich helfen, Probleme frühzeitig in der Entwicklung zu erkennen.
Um dies zu verstehen, ist es am besten, diese Idee noch einmal durchzugehen.
Angenommen, Sie entwickeln eine Funktion für ein WordPress-basiertes Projekt, mit der Sie Benutzern die Erstellung von Benutzerkonten ermöglichen, ohne sich tatsächlich beim WordPress-Dashboard anzumelden. Dies setzt voraus, dass Sie eine Seitenvorlage für die Registrierung, die erforderliche Überprüfung und den Code zum Generieren von Passwörtern und E-Mails eingerichtet haben.
Sie laden eine Seite in Ihrem Browser und versuchen, einige Benutzer zu erstellen – einige mit derselben E-Mail-Adresse, einige mit falschen Passwörtern, einige mit illegalen Zeichen usw. Sie verstehen, dass es mehrere Möglichkeiten gibt, zu überprüfen, ob die Prüfung erfolgreich ist oder nicht. Das ist so hart! Das bedeutet, dass Sie jedes Mal, wenn Sie die Benutzerregistrierungsfunktion ändern, dieselben n Registrierungen durchführen müssen, um sicherzustellen, dass keine Probleme auftreten.
Oder Sie können eine Reihe von Tests schreiben, um damit umzugehen, und sie jedes Mal ausführen, wenn sich der Code ändert.
Ja, das Schreiben von Unit-Tests kann viel Zeit in Anspruch nehmen, aber sehen Sie sich die Zeitersparnis jedes Mal an, wenn Sie eine Codeeinheit ändern. Dies lohnt sich auf jeden Fall und kann dazu beitragen, Probleme frühzeitig zu erkennen (d. h. vor der Freigabe für die Produktion), die möglicherweise übersehen wurden, weil jemand vergessen hat, eine Permutation des Tests zu simulieren.
Selbstaufnahme
Beim Schreiben von Unit-Tests verbessern Sie nicht nur die Qualität Ihres Codes, indem Sie sicherstellen, dass er tatsächlich funktioniert, sondern Sie stellen im Wesentlichen auch eine entwicklerorientierte Dokumentation bereit.
Wenn Sie eine in Ihr Produkt integrierte Funktion einem Unit-Test unterziehen, stellen Sie eine Dokumentation darüber zur Verfügung, wie die Funktion funktioniert, wann sie fehlschlagen sollte und wann sie bestanden werden sollte.
Damit gehen einige Annahmen einher: Insbesondere benennen und gruppieren Sie Ihre Funktionen und die zugehörigen Tests logisch und testen jede Funktion korrekt.
Mit PHPUnit können WordPress-Unit-Tests einfach leicht lesbare Behauptungen ausführen. Sie deklarieren einfach „assertTrue“, „assuranceFalse“ oder eine andere verfügbare Behauptung für die Funktionen, aus denen Ihr Projekt besteht.
In Anlehnung an das obige Beispiel bedeutet dies, dass Sie eine Funktion schreiben können, die sicherstellt, dass die Benutzerregistrierungsfunktion fehlschlägt, wenn versucht wird, sich mit einer leeren E-Mail-Adresse zu registrieren:
$this->assertFalse( registerNewUser( '' ) );
Vielleicht ein einfaches Beispiel, aber der Punkt bleibt bestehen: Ihr Code wird selbstdokumentierend und erfordert nur das Schreiben klarer Komponententests.
Architektur
Einer der vielleicht am meisten unterschätzten Vorteile von Unit-Tests besteht darin, dass es dabei helfen kann, die Architektur Ihres Projekts voranzutreiben. Typischerweise kann die Theme- oder Plugin-Entwicklung auf zwei Arten beginnen:
- Listen Sie die Funktionen auf, zeichnen Sie die Benutzeroberfläche und schreiben Sie dann den Code
- Zeichnen Sie ein Diagramm, wie die Dateien zusammenarbeiten, und schreiben Sie dann den Code
Das sind nicht grundsätzlich schlechte Dinge, aber ich denke, sie sind schwach (ich gebe als Erster zu, dass ich mehr tue, als ich teilen möchte!). Aber der Schritt „Schreiben Sie den Code“ bringt eine Menge Verantwortung mit sich, nicht wahr?
Es ist jedem, der schon lange programmiert, so vertraut, dass einem irgendwann klar wird: „Oh ... daran habe ich nicht gedacht.“
Wenn Sie Glück haben, bedeutet dies normalerweise, dass Sie eine Hilfsmethode oder eine andere Bedingung schreiben können, um den Fall zu behandeln, den Sie ignoriert haben. Im schlimmsten Fall bedeutet dies jedoch, dass Sie möglicherweise Ihre gesamte Klasse oder gesamte Sammlungsfunktion neu entwerfen müssen, um dieses Problem zu lösen .
Unit-Tests sind zwar nicht perfekt, können aber helfen, diese Situation zu entschärfen.
Denken Sie daran, dass Sie von Anfang an eine Liste aller Funktionen haben, die Ihr Theme oder Plugin bieten soll. Sie haben noch keinen Code geschrieben, aber vielleicht haben Sie eine Art UI-Skizze und/oder eine Reihe von Klassendiagrammen.
接下来,您开始编写要编写的测试以测试您的项目。回想一下,单元测试的一部分是将代码分解为尽可能的原子单元,因此您的任务是为每个单元编写单元测试,咳咳。
由于单元测试的性质,您本质上会以不同的方式思考您的代码:您正在考虑“编写测试”,而不是“编写代码”,并且因为您必须在更原子的级别上进行思考,您会情不自禁地考虑经常被归入“编写代码”的边缘案例。
代码的语言
作为开发人员,我们非常习惯使用不断强化我们编写代码的约定。我的意思是,我们倾向于提供缩写的变量名称、神秘的函数名称和类名称,这些名称对于您自己或项目团队之外的任何人来说可能没有任何意义。
单元测试不一定是编写更易于阅读的代码的关键,但它可以进一步帮助提供更清晰的函数名称。
回想一下您读过的第一本编程书、您参加的第一堂计算机科学课或者您看到的第一段开源代码,方法名称通常是动词。为什么他们不应该这样?方法是封装代码的方法,做一些事情。但随着我们在项目上工作的时间越来越长,我们变得越来越懒,我们的代码从“register_user_and_email_password()
”变成“new_account()
”。
显然,前者比后者更清晰,但如果我们致力于高质量的单元测试,并且希望确保我们的单元测试易于阅读,为了使它们易于阅读,我们的函数名称必须易于阅读。
这不是更容易阅读吗:
$this->assertFalse( register_user_and_email_password( '' ) );
而不是这个?
$this->assertFalse( new_account( '' ) );
同样,这也许是一个简单的示例,但原则仍然是:编写良好的单元测试,以帮助自我记录驱动函数语言的代码。
结论
我们已经讨论了单元测试的基础知识以及主要优点,但是我们还没有讨论单元测试带来的缺点,我们甚至还没有考虑如何将其合并到我们的项目中。工作流程。
因此,在下一篇文章中,我们将尝试做到这一点。
Das obige ist der detaillierte Inhalt vonUnit-Testing-Theorie (Fortsetzung): Teil 2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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



WordPress ist für Anfänger leicht zu beginnen. 1. Nach dem Anmeldung im Hintergrund ist die Benutzeroberfläche intuitiv und das einfache Dashboard bietet alle erforderlichen Funktionslinks. 2. Grundlegende Vorgänge umfassen das Erstellen und Bearbeiten von Inhalten. Der Wysiwyg -Editor vereinfacht die Erstellung von Inhalten. 3. Anfänger können die Website-Funktionen durch Plug-Ins und Themen erweitern, und die Lernkurve existiert, kann aber durch das Üben gemeistert werden.

Blogs sind die ideale Plattform für Menschen, um ihre Meinungen, Meinungen und Meinungen online auszudrücken. Viele Neulinge sind bestrebt, eine eigene Website zu bauen, zögern jedoch, sich über technische Hindernisse oder Kostenprobleme zu sorgen. Da sich die Plattform jedoch weiterentwickelt, um die Fähigkeiten und Bedürfnisse von Anfängern zu erfüllen, wird sie jetzt einfacher als je zuvor. In diesem Artikel führen Sie Schritt für Schritt, wie Sie ein WordPress -Blog erstellen, von der Auswahl der Themen bis zur Verwendung von Plugins, um Sicherheit und Leistung zu verbessern und Ihnen dabei zu helfen, Ihre eigene Website problemlos zu erstellen. Wählen Sie ein Blog -Thema und eine Blog -Richtung Vor dem Kauf eines Domainnamens oder der Registrierung eines Hosts ist es am besten, die Themen zu identifizieren, die Sie abdecken möchten. Persönliche Websites können sich um Reisen, Kochen, Produktbewertungen, Musik oder jedes Hobby bewirken, das Ihre Interessen weckt. Wenn Sie sich auf Bereiche konzentrieren, an denen Sie wirklich interessiert sind, können Sie das kontinuierliche Schreiben fördern

Kann WordPress innerhalb von drei Tagen lernen. 1. Master Basic-Kenntnisse wie Themen, Plug-Ins usw. 2. Verstehen Sie die Kernfunktionen, einschließlich Installations- und Arbeitsprinzipien. 3. Lernen Sie die grundlegende und erweiterte Verwendung anhand von Beispielen. 4. Verstehen Sie Debugging -Techniken und Vorschläge zur Leistungsoptimierung.

WordPressIsGoodforenualywebProjectDuetoitsverseSatilityasacms.itexcelsin: 1) Benutzerfreundlichkeit, erlaubt Easywebsitesetup; 2) Flexibilität und Kustomisierung mit

Wix ist für Benutzer geeignet, die keine Programmiererfahrung haben, und WordPress ist für Benutzer geeignet, die mehr Kontroll- und Erweiterungsfunktionen wünschen. 1) Wix bietet Drag-and-Drop-Editoren und reichhaltige Vorlagen und erleichtert es, eine Website schnell zu erstellen. 2) Als Open-Source-CMS verfügt WordPress über eine riesige Community- und Plug-in-Ökosystem, die eine eingehende Anpassung und Erweiterung unterstützt.

WordPress selbst ist kostenlos, kostet jedoch zusätzlich: 1. WordPress.com bietet ein Paket von kostenlos bis bezahlt, wobei die Preise zwischen ein paar Dollar pro Monat bis zu Dutzenden von Dollar reichen. 2. 3. Die meisten Plug-Ins und Themen sind kostenlos, und der bezahlte Preis liegt zwischen Dutzenden und Hunderten von Dollar. Durch die Auswahl des richtigen Hosting-Dienstes, die Verwendung von Plug-Ins und Themen und regelmäßige Aufrechterhaltung und Optimierung können die Kosten von WordPress effektiv gesteuert und optimiert werden.

Die Kernversion von WordPress ist kostenlos, aber andere Gebühren können während der Verwendung anfallen. 1. Domainnamen und Hosting -Dienste erfordern eine Zahlung. 2. können fortgeschrittene Themen und Plug-Ins aufgeladen werden. 3.. Professionelle Dienstleistungen und fortschrittliche Funktionen können berechnet werden.

WordPress ist ein Content Management System (CMS). Es bietet Content Management, Benutzerverwaltung, Themen und Plug-in-Funktionen, um die Erstellung und Verwaltung von Website-Inhalten zu unterstützen. Das Arbeitsprinzip umfasst Datenbankverwaltung, Vorlagensysteme und Plug-in-Architektur, die für eine Vielzahl von Anforderungen von Blogs bis hin zu Unternehmenswebsites geeignet sind.
