Codecademy: assert.deepEqual()
Explaining how/why assert.deepEqual evaluates to true
Overall this Codecademy lesson on assert.deepEqual
does a good job of explaining what I imagine to be a very basic example of how to use deepEqual.
At the end of the guided lesson the code looks as follows:
const assert = require('assert');
describe('+', () => {
it('returns the sum of two values', () => {
// Setup
let expected = {a: 3, b: 4, result: 7}; // Line 6
let sum = {a: 3, b: 4}; // Line 7
// Exercise
sum.result = sum.a + sum.b; // Line 10
// Verify
assert.deepEqual(sum, expected); // Line 13
});
});
A beginner or intermediate level learner with knowledge of how objects work can probably read through the code and understand what is happening (i.e. why assert.deepEqual
evaluates to true
) though it isn't immediately apparent.
So, why does assert.deepEqual
evaluate to true
?
- [Lines 6-7] The
expected
object has length3
, and thesum
object has length2
- [Line 10]
sum.result = sum.a + sum.b
adds a new key-value pair (result: 7
) to thesum
object. - Because of Line 10, the
sum
object now also has length3
, and each key-value pair is the same across both objects - [Line 13]
assert.deepEqual
evaluates totrue
Or, in commented form:
const assert = require('assert');
describe('+', () => {
it('returns the sum of two values', () => {
// Setup
let expected = {a: 3, b: 4, result: 7};
let sum = {a: 3, b: 4};
// Exercise
sum.result = sum.a + sum.b;
// At this point sum = {a: 3, b: 4, result: 7}
// (which is the same as expected)
// Verify
assert.deepEqual(sum, expected);
});
});