Custom QUnit assertions
QUnit is the test framework on Ember land. It's really good, but there are just 14 assertions to be used. We have ok()
and notOk()
so it seems that we can do whatever we want, but when some test fails the message are not good enough.
A simple string includes
example:
// tests/acceptance/home-test.js
assert.ok(homePage.title.includes('Welcome to TIL'));
// => failed, expected argument to be truthy, was: false
To improve that I created this new custom assertion:
// tests/helpers/custom-asserts.js
import QUnit from 'qunit';
QUnit.assert.includes = function(text, expected) {
let message = 'expected: "' + expected + '" to be included on: "' + text + '"';
this.ok(text.includes(expected), message);
};
And imported in:
// tests/helpers/module-for-acceptance.js
import '../helpers/custom-asserts';
And here it is the new message on error:
// tests/acceptance/home-test.js
assert.includes(homePage.title, 'Welcome to TIL')
// => expected: "Welcome to TIL" to be included on: "Welcome to Today I Learned!"
Tweet