2010-11-09 3 views
1

J'utilise le sélénium RC avec PHPunit et j'ai ce problème. Je suis en train de faire assertEqual mais c'est le résultat:PHPUnit - affirmer que deux chaînes sont égales et ils sont

Failed asserting that two strings are equal. 
--- Expected 
+++ Actual 
@@ @@ 
abc 
def 

La ligne étape:

$this->assertEquals("abc\ndef", $this->getValue("text")); 

et "texte" est "abc \ ndef".

Dans Firefox, ça marche bien. Le problème est seulement avec IE. Dans le résultat, il ne me dit pas ce qui n'est pas égal ..

Répondre

3

Il y a très probablement un retour chariot (\r) là où la sortie de chaîne de PHPUnit ne s'affiche pas. Utilisez addslashes() ou serialize() pour afficher les caractères cachés.

$this->assertEquals(addslashes("abc\ndef"), addslashes($this->getValue("text"))); 
2

J'ajoute une réponse pour les personnes qui arrivent ici avec Google.
Vous pouvez le faire comme ça aussi:

$this->assertEquals(preg_split('/\r\n|\r|\n/', "abc\ndef"), preg_split('/\r\n|\r|\n/', $this->getValue("text"))); 

ou

// Note the return line in the PHP file without any space at the begining 
$this->assertEquals(preg_split('/\r\n|\r|\n/', 'abc 
def'), preg_split('/\r\n|\r|\n/', $this->getValue("text"))); 
Questions connexes