一旦我们需要的一些第三方库准备就绪,我们就准备迁移到 php 8.0.15。
我们用于单元测试的集中式 setUp() 函数处理我们的类模拟的 constructorArg 填充。
当前使用 phpunit v9.5.14,我们得到失败的测试,响应错误:未知的命名参数 $User
据我们所知,我们没有在代码库中使用命名参数。
if (empty($this->constructorArgs)) {
$this->constructorArgs = array('User');
}
if (!empty($this->constructorArgs) && is_array($this->constructorArgs)) {
foreach ($this->constructorArgs as $classname) {
if (is_array($classname)) {
$args[key($classname)] = current($classname);
$classname = key($classname);
} else {
if ($classname == "Twig" || $classname == "Twig\Environment") {
$args[$classname] = TwigFactory::mockTwig();
} else {
$args[$classname] = $this->getMockBuilder($classname)->disableOriginalConstructor()->getMock();
}
}
$container->set($classname, $args[$classname]);
}
}
$this->mock = $this->getMockBuilder($this->class)
->setMethods($this->methods)
->setConstructorArgs($args)
->getMock(); <-- Error states this line, unfortunately no …Run Code Online (Sandbox Code Playgroud)