make parameterized testing easier
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 18.3k
- Forks
- 2k
- Ø Merge
- 2 T. 12 Std.
- Gemergte PRs (30 T.)
- 28
Beschreibung
I use parameterization in testing because it finds a lot of corner-case bugs.
Test results look like this:
I test many possible new configurations including extremes, etc, and then also test a range of configurations that shouldn't impact the new feature but might because of code proximity.
It does find bugs
In Jasmine and w/ ES5+Promises it's hard to implement manually because of all the weird scoping rules and promises and lack of ES6 tools like let. You can see my implementation here: https://github.com/plotly/plotly.js/blob/fe6f8d05828a789205448376c2d0f32ef71652a2/test/jasmine/tests/pikul_test.js#L28-L143
The messiness comes from scoping rules and reusing logic and etc. But it works well!
There is a module available on GitHub that has a much nicer interface: https://github.com/paucls/jasmine-parameterized
but not sure about maintenance or other solutions.
Thoughts?
edit: also i'm back after a move, will get back around to this stuff mid/late next week- have to prepare a course
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit der Implementierung des parametrisierten Tests in test/jasmine/tests/pikul_test.js#L28-L143 und überprüfen Sie das verknüpfte jasmine-parameterized-Modul. Vergleichen Sie dessen Schnittstelle und Wartungsstatus mit der Jasmine- und ES5+Promises-Konfiguration des Repositorys. Da das Issue keine konkreten Akzeptanzkriterien enthält, müssten zunächst ein vorgeschlagener Ansatz und eine Definition of Done festgelegt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- testing
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100