我有以下测试脚本:
class testTest extends PHPUnit_Framework_TestCase
{
public function provider() {
return [
[1,false],
[2,true]
];
}
/**
* @test
* @provider provider
*/
public function test_test($num, $expected) {
$actual = $num%2 ? false : true;
$this->assertEquals($actual, $expected);
}
}
每当我运行时,我都会收到错误:
1) testTest::test_test
Missing argument 1 for testTest::test_test()
我的测试套装中有其他测试没有使用dataProviders并且它们工作正常。我该如何解决这个问题?
答案 0 :(得分:1)
将@provider
更改为@dataProvider
,例如
/**
* @dataProvider provider
*/
public function test_test($num, $expected) {
$actual = $num%2 ? false : true;
$this->assertEquals($actual, $expected);
}
阅读文档: https://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.dataProvider
PS:你在assertEquals中得到了错误的参数。它应该是:
$this->assertEquals($expected, $actual);
再次:https://phpunit.de/manual/current/en/appendixes.assertions.html#appendixes.assertions.assertEquals