来自phpunit的assertEquals说我的字符串不相等,但我已经复制了它们,我认为这是由于在响应中添加了行

来自phpunit的assertEquals说我的字符串不相等,但我已经复制了它们,我认为这是由于在响应中添加了行,php,phpunit,guzzle,Php,Phpunit,Guzzle,我正在尝试使用guzzle运行一些测试,以提示服务器输入JSON响应,并将其与预期的响应进行比较。问题是我无法得到与预期结果匹配的响应。我认为这主要是由于一些语法错误,但我不知道如何纠正这一点 我已经尝试将新行手动添加到输出的内容中,但这只是将\n添加到字符串中 请参阅下面的控制台报告: 1) UserAgentTest::testGet Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'{"

我正在尝试使用guzzle运行一些测试,以提示服务器输入JSON响应,并将其与预期的响应进行比较。问题是我无法得到与预期结果匹配的响应。我认为这主要是由于一些语法错误,但我不知道如何纠正这一点

我已经尝试将新行手动添加到输出的内容中,但这只是将\n添加到字符串中

请参阅下面的控制台报告:

1) UserAgentTest::testGet
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'{"error":false,"user":{"id_customer":10,"name":"Nic","email":"nparmee@gmail.com","password":"$2y$15$YN5A58syg5iIuHJ.5BR6j.ZpHGASqZID4l6k.M3xgH9jSPlojhzGK","x_coord":"-29.82188!-29.79044","y_coord":"31.02221!30.80688","address_name":"Home!Not home","address":"11 Rapson Road!11 everton road","country":null,"province":"KwaZulu-Natal!KwaZulu-Natal","city":"Durban!Durban","suburb":"Morningside!Kloof","postcode":"2639!3620","account":"sole","vat_num":"","reg_id":"","phone_number":"0836661065"}}'
+'
+
+{"error":false,"user":{"id_customer":10,"name":"Nic","email":"nparmee@gmail.com","password":"$2y$15$YN5A58syg5iIuHJ.5BR6j.ZpHGASqZID4l6k.M3xgH9jSPlojhzGK","x_coord":"-29.82188!-29.79044","y_coord":"31.02221!30.80688","address_name":"Home!Not home","address":"11 Rapson Road!11 everton road","country":null,"province":"KwaZulu-Natal!KwaZulu-Natal","city":"Durban!Durban","suburb":"Morningside!Kloof","postcode":"2639!3620","account":"sole","vat_num":"","reg_id":"","phone_number":"0836661065"}}'

C:\wamp64\www\tests\UserAgentTest.php:32

FAILURES!
Tests: 2, Assertions: 3, Failures: 1.

“实际”字符串中有两个前导的换行符:

您可以使用PHP的
trim
函数除去字符串开头和结尾的空白

 self::assertEquals(trim($string1), trim($string2));
这将确保没有前导/尾随空格字符

此外,您可能希望使用
preg\u replace
删除所有新行:

self::assertEquals(
修剪(预替换('/\R+/','$string1)),
修剪(预替换('/\R+/','$string2))
);

看起来“预期”值不包含额外的引号
。尝试移除它。你能展示一下你的测试代码吗?起初我是这么认为的,但实际上它只比其他测试高出两行,但@Nicolai Fröhlich answer有帮助。我最初是想在预期输出中添加行,而不是从实际输出中删除行。这很好,谢谢。两种选择都非常有效。
 self::assertEquals(trim($string1), trim($string2));