Phpunit -Datenanbieter -Argument -ZählfehlerPhp

PHP-Programmierer chatten hier
Anonymous
 Phpunit -Datenanbieter -Argument -Zählfehler

Post by Anonymous »

Ich habe gerade angefangen, Phpunit zu verwenden. Bisher läuft alles perfekt, bis auf den Datenanbieter < /code> Ausgabe. Aber wenn ich es noch einmal ausführe, schlägt es mit dem folgenden Fehler fehl: < /p>

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 
oder abzern )? Dank im Voraus. :-) < /p>



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







Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post