当数组包含 UTF-8 字符时,CodeCeption assertContains 失败

CodeCeption assertContains fails when array contains UTF-8 characters

我有一个断言来检查我的 CodeCeption 测试中数组中的一个键。测试调用 REST API 并检查返回的响应。

我有这个命令:

$I->assertContains("key", $resp);

输出为:

Step  Assert contains "key",{"key":"0m-5m","price":10000,"text":"۰ تا ۵ دقیقه"}
Fail  Failed asserting that an array contains 'key'.

但是当我将命令更改为以下内容时,一切正常:

$I->assertInternalType("string", $resp["key"]);

此行为表明在我的 $resp 对象中有一个名为 key 的键。

我认为原因可能是 UTF-8 个字符,因为我之前已经使用 asserContains 一百次并且它很有魅力。

知道如何解决这个问题吗?

我尝试了 CodeCeption 的另一种断言方法,它对我来说效果很好。

$I->assertArrayHasKey("key", $resp);