False InvalidArgument for named dataset keys (PHPUnit 11+)
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Read TestCaseHandler::afterStatementAnalysis() and the argument checks it performs, then inspect the named dataset handling and test fixture in phpstan-phpunit’s DataProviderDataRule for reference. Add coverage for named keys, unknown parameter names, positional datasets, and PHPUnit 10 compatibility. Done when the plugin reports valid PHPUnit 11 named datasets correctly and the tests pass; a linked pull request is already open.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Since PHPUnit 11, string keys in a dataset are passed as named arguments. The plugin matches dataset entries to parameters by position, so a valid provider is reported:
/** @return iterable<array{currency: string, cents: int}> */
public static function prices(): iterable
{
yield ['currency' => 'EUR', 'cents' => 100];
}
#[DataProvider('prices')]
public function testPrice(int $cents, string $currency): void {} // two InvalidArgument reports
phpstan-phpunit handles named entries (DataProviderDataRule, see its data-provider-data-named test fixture).
Idea: in the argument checks of TestCaseHandler::afterStatementAnalysis(), match string keys of a TKeyedArray dataset to parameter names (and report unknown names), falling back to positional matching for list-shaped datasets. It should take the PHPUnit version into account while PHPUnit 10 is supported. Roughly 50 lines with tests.
Idea borrowed from phpstan/phpstan-phpunit.
- Lingua principale
- Gherkin
- Stelle
- 79
- Fork
- 38
- Merge medio
- 6h 52m
- PR unite (30g)
- 28
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di psalm/psalm-plugin-phpunit
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
psalm/psalm-plugin-phpunit#222 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
psalm/psalm-plugin-phpunit#220 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
psalm/psalm-plugin-phpunit#219 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
psalm/psalm-plugin-phpunit#216 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
psalm/psalm-plugin-phpunit#223 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di psalm/psalm-plugin-phpunit
Issue simili
-
area: providers/aws priority: p2 size: S type: bug type: testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
finos/open-resource-broker#851 ·
I maintainer di solito rispondono entro 1 giorno
-
missing testAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
w3c/json-ld-api#741 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
msitarzewski/agency-agents#1276 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno