A QUnit plugin for asserting individual pixel values within a Canvas element.
npm install qunit-assert-canvas 
This plugin for QUnit adds pixelEqual and notPixelEqual (plus alias pixelNotEqual) assertion methods to test individual pixel values in a given canvas.
``jsassert.pixelNotEqual
assert.pixelEqual(canvas, x, y, r, g, b, a, message);
assert.notPixelEqual(canvas, x, y, r, g, b, a, message); // Alias: `
Where:
- canvas: Reference to a canvas elementx
- , y: Coordinates of the pixel to testr
- , g, b: The color value (0-255) of the pixel that you expecta
- : The opacity value (0-255) of the pixel that you expect; may be omitted or passed undefined if you want to ignore itmessage
- : Optional message, same as for other assertions
`js
module('Example module', {
setup: function() {
var canvas, context,
fixtureEl = document.getElementById('qunit-fixture');
fixtureEl.innerHTML = '';
canvas = fixtureEl.firstChild;
try {
context = canvas.getContext('2d');
}
catch(e) {
// probably no canvas support, just exit
return;
}
this.canvas = canvas;
this.context = context;
}
});
test('Example unit test', function(assert) {
this.context.fillStyle = 'rgba(0, 0, 0, 0)';
this.context.fillRect(0, 0, 5, 5);
assert.pixelEqual(this.canvas, 0, 0, 0, 0, 0, 0);
assert.notPixelEqual(this.canvas, 0, 0, 1, 1, 1, 0);
});
``
For more examples, refer to the unit tests.