gpt4 book ai didi

php - 我可以使用@depends 来依赖使用@dataProvider 的测试吗?

转载 作者:IT王子 更新时间:2023-10-29 00:03:41 24 4
gpt4 key购买 nike

我有一个测试类,其中一个测试通过 @dataProvider 运行多次,另一个测试 @depends 在第一种方法上。然而,当我调用 var_dump 来确定应该传递给第二个测试的内容时,它给了我一个可靠的 NULL,这是我没有预料到的。

换句话说:这应该做什么:

<?php 
class DevicesTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider registerDataProvider
*/
public function testRegister($device, $supposedResult)
{
//do a bunch of tests
return array($device, $supposedResult);
}

public function registerDataProvider()
{
return array(array("foo", "foo"));
}

/**
* @depends testRegister
*/
public function testSaveDevicePreferences($deviceArr)
{
$this->assertNotEmpty($deviceArr);
}
}
?>

最佳答案

在当前版本的 PHPUnit(截至今天的 5.4)中,这是可能的。

根据documentation :

When a test receives input from both a @dataProvider method and from one or more tests it @depends on, the arguments from the data provider will come before the ones from depended-upon tests. The arguments from depended-upon tests will be the same for each data set.

实际情况是这样的:

<?php

class DataProviderAndDependsCombinationTest extends AbstractUnittest{

public function dataProviderForSomething()
{
return array(
array(
'someProvidedValue',
'someOtherProvidedValue'
)
);
}

public function testToDependOn()
{
$this->assertTrue(true);
return 'someDependedValue';
}

/**
* @dataProvider dataProviderForSomething
* @depends testToDependOn
*/
public function testSomething($someProvidedValue, $someOtherProvidedValue, $someDependedValue)
{
$this->assertSame('someProvidedValue', $someProvidedValue);
$this->assertSame('someOtherProvidedValue', $someOtherProvidedValue);
$this->assertSame('someDependedValue', $someDependedValue);
}
}

关于php - 我可以使用@depends 来依赖使用@dataProvider 的测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707526/

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