gpt4 book ai didi

unit-testing - 当我使用 yii2 框架运行 codeception 时出现 DeepCopy::recursiveCopy 异常

转载 作者:行者123 更新时间:2023-12-01 10:37:09 25 4
gpt4 key购买 nike

当运行 codeception 时,我遇到了很多错误:DeepCopy\DeepCopy::recursiveCopy。

这是一个让我困惑的问题!

  1. 当我只有 4 个单元测试用例时,我使用 codeception 玩得很好:enter image description here
  2. 当我还在写单元测试用例的时候发生了..
  3. 我的测试课上有 5 个单元测试,然后我得到了这个:enter image description here

代码如下:

public function testGetComplexItemNeeds() {
$this->specify('[getComplexItemNeeds] : ', function($expected) {
$actual = \common\services\ConfigService::getComplexItemNeeds('300001');

expect('getComplexItemNeeds', $actual)->equals($expected);
}, ['examples' => [
[0 => [
'gold' => 1,
'list' => [
300018 => 1,
],
]
],
]]);
}

php_error.log:

PHP 195. DeepCopy\DeepCopy::copyArray($array = array ('0000000025e4802e0000000050ab4f11' => class tests\codeception\frontend\UnitTester { protected $scenario = class Codeception\Scenario { ... }; protected $friends = array (...) }, '0000000025e480490000000050ab4f11' => class Codeception\Scenario { protected $test = class tests\codeception\frontend\service\ConfigServiceTest { ... }; protected $steps = array (...);

调试: 我使用 xdebug 跟踪发现问题,当函数 specifyCloneProperties 将 unitTester 的 php 脚本向下复制时。

最佳答案

您可以 turn off在你的 bootstrap.php 文件中深度克隆:

<?php
// disable deep cloning of properties inside specify block
\Codeception\Specify\Config::setDeepClone(false);
?>

或开启/关闭in the test .它还提高了测试的性能。

关于unit-testing - 当我使用 yii2 框架运行 codeception 时出现 DeepCopy::recursiveCopy 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com