Code: Select all
ArgumentCountError: Too few arguments to function ValidationTest::testValidateType(), 0 passed and at least 3 expected
< /code>
Wenn ich Änderungen an der Datenanbieterfunktion vornehme (d. H. Die zu zurückgegebenen Daten, den Anbieterfunktionsname usw.) und erneut auszuführen, wird einmal übergeben und fehlgeschlagen mit dem obigen Fehler für alle aufeinanderfolgenden Testläufe. Leider habe ich nirgendwo eine bestimmte Lösung gefunden. Also, ich mache mir wirklich Sorgen, mache ich sehr alberne Fehler (en)? Wenn ja, gibt es dann eine Möglichkeit, es zu reinigen (möglicherweise mit Setup

Der folgende Code funktioniert einmal (einmal vorbei): < /strong> < /p>
Code: Select all
/**
* @covers Validation
* @coversDefaultClass Validation
*/
class ValidationTest extends TestCase {
protected $validation;
protected function setUp() {
$this->validation = new Validation();
}
/**
* @covers ::validateType
* @dataProvider validateTypeProdiver
*/
public function testValidateType($assertion, $argument, $type) {
$result = $this->validation->validateType($argument, $type);
switch ($assertion) {
case 'True':
$this->assertTrue($result);
break;
}
}
public function validateTypeProdiver() {
return [
['True', 'file.txt', 'str']
];
}
}
< /code>
Der folgende Code funktioniert immer (vergeht jedes Mal): < /strong> < /p>
/**
* @covers Validation
* @coversDefaultClass Validation
*/
class ValidationTest extends TestCase {
protected $validation;
protected function setUp() {
$this->validation = new Validation();
}
/**
* @covers ::validateType
*/
public function testValidateType() {
foreach ($this->validateTypeProdiver() as $args) {
$result = call_user_func_array([$this->validation, 'validateType'], array_slice($args, 1));
switch ($args[0]) {
case 'True':
$this->assertTrue($result);
break;
}
}
}
public function validateTypeProdiver() {
return [
['True', 'file.txt', 'str']
];
}
}
< /code>
Hier ist die Konfiguration: < /strong> < /p>
tests/ProjectX
tests/ProjectX/assets
src/ProjectX
src/ProjectX/nodejs-commands