gpt4 book ai didi

phpunit - 将数据提供者传递给 PHPUnit 中的 setUp()

转载 作者:行者123 更新时间:2023-12-03 16:42:12 25 4
gpt4 key购买 nike

我目前正在尝试将数据从我的数据提供者传递到 PHPUnit 中的 setUp() 方法。

背景:我使用 PHPUnit 在不同的浏览器中运行前端测试。浏览器应该在数据提供者内部定义,并且需要通过 setUp() 方法知道。

我知道,数据提供程序最初是在调用 setUp() 方法(如 setUpBeforeClass())之前执行的。因此 setUp()-data 不能传递给数据提供者。但它应该反过来工作,不是吗?

PHPUnit 是否使用来自“集成”数据提供者的数据生成自己的临时测试类?

当然:解决方法可能是再次读取 setUp() 方法中的 XML 文件。但这是最后的选择,我会考虑......

编辑:提供了一个小片段:

dataProvider() 的一部分:

public function dataProvider()
{
$this->xmlCnf = $data['config'];
var_dump($this->xmlCnf); // array with config is exposed
// [...]
}

和 setUp() 方法:
 protected function setUp()
{
var_dump($this->xmlCnf); // NULL
//[...]
}

最佳答案

如果这对任何人有用:

以下代码应该可以工作:

public function dataProvider()
{
return [ [ /* dataset 1 */] , ... ]
}

protected setUp() {
parent::setUp();
$arguments = $this->getProvidedData();
// $arguments should match the provided arguments for this test case
}

/**
* @dataProvider dataProvider
*/
public function testCase(...$arguments) {

}
getProvidedData方法似乎自 PHPUnit 5.6 起就可用(在最初提出此问题之前或之后不久)

关于phpunit - 将数据提供者传递给 PHPUnit 中的 setUp(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40397620/

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