TaskWrite assertEqual(actual, expected, msg) producing the multi-line message: '<msg>\n expected: <json>\n actual: <json>'. Trigger a failure with assertEqual({a:1}, {a:2}, 'objects equal') in try/catch, log err.message.
Helpful failure output
100 XP7 min
Theory
A failing test should tell you everything
When a test fails, the message should answer: what did we expect, what did we get, and where? Bad failure messages cost minutes per debug session β multiplied by hundreds of failing CI runs per year, the cost compounds.
function assertEqual(actual, expected, msg) {
if (actual !== expected) {
throw new Error(
\`${msg || "values differ"}\n expected: ${JSON.stringify(expected)}\n actual: ${JSON.stringify(actual)}\n\`
);
}
}Good vs bad
BAD: Error: assert failed
GOOD: Error: cart total
expected: 225
actual: 220The good version tells you WHICH assert, WHAT was expected, and WHAT actually came out β you can fix it without re-running in a debugger.
π
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.