Instantly share code, notes, and snippets.

Embed
What would you like to do?
JavaScript unit testing in under 30 lines
const PASS = ['32']; // green
const FAIL = ['31', '1']; // red, bold
function logStyle(ansiEscapeCodes, text) {
console.log(`\x1b[${ansiEscapeCodes.join(';')}m${text}\x1b[0m`);
}
class Tester {
constructor() {}
test(name, fn) {
try {
fn.bind(this)();
logStyle(PASS, `${name} PASSED`);
}
catch (e) {
logStyle(FAIL, `${name} FAILED:
${e}`);
}
}
assertEquals(arg1, arg2) {
if (arg1 != arg2) throw new Error(`Expected ${arg1} to equal ${arg2}`);
}
assert(condition) {
if (!condition) throw new Error(`Expected ${condition} to be truthy`);
}
}
/*
Usage:
const t = new Tester();
t.test('testName', () => {
t.assertEquals('dog'.length, 3); // will pass
});
t.test('anotherTestName', () => {
t.assert(false); // will fail
});
*/
@crislin2046

This comment has been minimized.

crislin2046 commented Nov 5, 2018

Good code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment