Ich schaue PHPUnit an und das folgende hat mich gewundert. Behandelt oder behandelt PHPUnit nicht int. 1 und 0 als Boolean? Bei meinen aktuellen Tests nicht.
Beispiel: $this->assertTrue(preg_match('/asdf/', 'asdf'));
Bei meinen Tests schlägt dies fehl, da preg_match () int 1 oder 0 zurückgibt und nur bool false, wenn ein Fehler vorliegt.
Ich nehme die folgenden Arbeiten natürlich, da Vergleiche immer bool zurückgeben. $this->assertTrue(preg_match('/asdf/', 'asdf') === 1);
Fehle ich etwas in meinem preg_match, oder meine Behauptung, es zu machen .... weniger streng?
BEARBEITEN: Erfordert assertTrue übereinstimmende Typen? Gibt es eine Möglichkeit, die Behauptung weniger streng zu machen?
PHP hat einen separaten boolean
-Typ, seine Werte von TRUE
und FALSE
(Groß- und Kleinschreibung -unabhängige Konstanten) sind nicht identisch mit ganzzahligen Werten von 1 und 0.
Wenn Sie den strikten Vergleich verwenden ( ===
), funktioniert es nicht: TRUE !== 1
und FALSE !== 0
.
Wenn Sie Typ-Jonglieren verwenden, wird TRUE
in 1 konvertiert und FALSE
in 0 konvertiert (und umgekehrt wird 0 in FALSE
konvertiert, jede andere Ganzzahl wird in TRUE
konvertiert). Also, TRUE == 1
und FALSE == 0
.
In PHPUnit sind assertTrue
und assertFalse
typabhängige, strenge Prüfungen. assertTrue($x)
prüft ob TRUE === $x
, es ist dasselbe wie assertSame(TRUE, $x)
und nicht dasselbe wie assertEquals(TRUE, $x)
.
In Ihrem Fall wäre ein möglicher Ansatz das explizite Typcasting:
%Vor%PHPUnit verfügt jedoch über eine dedizierte Assertion, um die Zeichenkette gegen regulären Ausdruck zu prüfen:
%Vor% Bitte verwenden Sie nicht eine Menge von assertTrue
oder assertFalse
prüft mit der realen Logik eingebettet in einem komplizierten Funktionsaufruf, wenn spezifischere Testfunktionen verfügbar sind.
PHPUnit verfügt über sehr viele Aussagen, die wirklich hilfreich sind, wenn sie nicht erfüllt werden. Sie geben Ihnen eine Menge Kontext, was schief gelaufen ist, was Ihnen beim Debuggen hilft.
Um nach einem regulären Ausdruck zu suchen, verwenden Sie assertRegExp()
(siehe Ссылка )
Tags und Links php phpunit assertions