Ho letto la documentazione sull'argomento e il mio codice segue tutti i requisiti dell'implementazione di un fornitore di dati. Prima di tutto, here's the full code of the test nel caso sia pertinente.PHPUnit @dataProvider semplicemente non funziona
Ecco la funzione che implementa provider di dati:
/**
* Test the createGroup function
*
* @return void
* @author Tomas Sandven <[email protected]>
*
* @dataProvider provideFileImportTests_good
**/
public function testCreateGroup($file, $groupname, $group, $mapping)
{
// Create a test group
$id = $this->odm->createGroup($groupname, $group);
// Try to load it back out
$result = R::load(OmniDataManager::TABLE_GROUP, $id);
// Check that the result is not null
$this->assertFalse(is_null($result));
return $id;
}
PHPUnit solo fallisce:
argomento 1 per mancanza di tests \ Broadnet \ broadmap \ OmniDataManagerTest :: testCreateGroup()
Ho provato ad uccidere l'applicazione (die();
) all'interno della funzione del fornitore di dati e non accade mai. La funzione del fornitore di dati è disponibile pubblicamente nella stessa classe, non ci sono errori di battitura nel nome della funzione e la funzione testCreateGroup
fa riferimento ad essa nelle annotazioni nel commento, ma la funzione del fornitore di dati non viene mai chiamata.
spiegare perché
Grazie
Hai anche chiamato il genitore :: __ constructor()? Di solito, non si definirà comunque un costruttore per una testcase, ma si utilizzerà la funzione setUp(). –
Avevo bisogno di un codice da eseguire una volta prima di iniziare qualsiasi test. No non ho chiamato 'parent :: __ constructor()' ... Ho sostituito il costruttore con 'function setUpBeforeClass' comunque. È problematico che debba essere statico, ma fortunatamente non ho avuto bisogno di mettere niente di interessante lì – Hubro
Puoi avere un costruttore personalizzato, ma devi fare attenzione ad accettare gli stessi parametri e passarli al costruttore genitore. –