Liste des Groupes | Revenir à l prolog |
Again JavaScript shines since the keyword "async"
makes the difference. We have recently experienced
its benefit, since we could remove all new Promise()
calls in our code where we are juggling with tasks.
new Promise() is only needed for callbacks that
then call resolve() or reject(), but task can
just use await and try catch. Now without
the keyword its a traditional test case:
test('synchronous failing test', (t) => {
// This test fails because it throws an exception.
assert.strictEqual(1, 2);
});
With the keyword its a test case that
can test timers and tasks:
test('asynchronous passing test', async (t) => {
// This test passes because the Promise returned by the async
// function is settled and not rejected.
assert.strictEqual(1, 1);
});
Mild Shock schrieb:A flesh an bood cooperative multitasking Prolog system
is sometimes tricky to do. We were agonizing over the
last days how we could test our timers and tasks.
>
Our existing framework doesn't work, since it neither
waits for a timer callback to be fired and to complete,
nor for a task to complete. But its seems its just an
instance of a Promise again.
>
Turn the test case itself into a Promise, and wait for
it. In Prolo terms, the test case is a success when the
.then() port gets reached with SUCCESS, or its a failure
if the .then() port gets reached with FAILURE or if the
>
the .catch() port gets reached. Interesting framework
that does just that:, whereby the use assert, to turn
FAILURE into an exception:
>
Node.js v20.0.0 - The test runner is now stable.
https://nodejs.org/api/test.html#describe-and-it-aliases
>
BTW: Quite inventive vocabulary...
>
>
>
Les messages affichés proviennent d'usenet.