The assertion module should signals failures through messages to the test runner
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 122k
- Forks
- 37.3k
- Ø Merge
- 4 T. 2 Std.
- Gemergte PRs (30 T.)
- 283
Beschreibung
What is the problem this feature will solve?
The assertion module signals failures via exceptions. This may causes some subtle issues during program testing, since the "exception channel" is also used by the program under test which may catch the exceptions generated by failing assertions resulting in weird test behavior.
import {test} from "node:test";
import assert from "node:assert";
function function_under_test(callback, value) {
let r = 0;
try {
r = callback(value);
} catch (error) {
//log error...
}
//continue executing operations...
}
test("weird test supposed to fail, but it doesn't", function () {
function_under_test(function (v) {
assert.fail("BOOM!");
}, 4);
});
test passes...
What is the feature you are proposing to solve the problem?
When in a test runner context provide the assertion module via the testContext object:
import {test} from "node:test";
import assert from "node:assert";
function function_under_test(callback, value) {
let r = 0;
try {
r = callback(value);
} catch (error) {
//log error...
}
//continue executing operations...
}
test("weird test", function (testContext) {
function_under_test(function (v) {
testContext.assert.fail("BOOM!");
}, 4);
});
and signal the failures via messages between testContext and assert methods.
What alternatives have you considered?
No response
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
Beginne mit dem Lesen der node:test testContext API und des node:assert-Moduls und untersuche anschließend, wie Assertion-Fehler den Test Runner erreichen. Definiere die Assertion-Schnittstelle des Testkontexts und verifiziere, dass Fehler nicht vom zu testenden Code abgefangen werden können, während der Runner sie weiterhin meldet.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 32/100