Ich bin eine binäre Baum-Klasse in Javascript erstellen und mein Test ist fehlgeschlagen, aber ich sehe nichts falsch mit meiner Methode und ich erhalte keine diff. Jede Einsicht wäre großartig.Mocha/chai Behauptung ist scheitern, aber es gibt keine diff
Hier ist meine Klasse:
function binaryTree() {
this.root = null;
};
binaryTree.prototype = {
constructor: binaryTree,
add: function(val) {
var root = this.root;
if(!root) {
this.root = new Node(val);
return;
}
var currentNode = root;
var newNode = new Node(val);
while(currentNode) {
if(val < currentNode.value) {
if(!currentNode.left) {
currentNode.left = newNode;
break;
}
else {
currentNode = currentNode.left;
}
}
else {
if(!currentNode.right) {
currentNode.right = newNode;
break;
}
else {
currentNode = currentNode.right;
}
}
}
}
mein Test hier:
it('adds values to the binary tree', function() {
var test = new binaryTree();
test.add(7);
test.add(43);
test.add(13);
test.add(27);
test.add(82);
test.add(2);
test.add(19);
test.add(8);
test.add(1);
test.add(92);
expect(test).to.equal({
root:
{ value: 7,
left:
{ value: 2,
left: { value: 1, left: null, right: null },
right: null },
right:
{ value: 43,
left:
{ value: 13,
left: { value: 8, left: null, right: null },
right:
{ value: 27,
left: { value: 19, left: null, right: null },
right: null } },
right:
{ value: 82,
left: null,
right: { value: 92, left: null, right: null } } } }
});
});
Und hier ist der Fehler Ich erhalte:
1) binary tree tests adds values to the binary tree:
AssertionError: expected { Object (root) } to equal { Object (root) }
+ expected - actual
Wenn ich mess around mit den Werten Im Testobjekt sehe ich ein diff, so dass es für mich aussieht als wäre alles gleich und ich bin ratlos. Ich würde es wirklich schätzen, wenn ich ein zweites Augenpaar darauf bekommen könnte.
Ich komme, wo du herkommst und ich habe das versucht, aber das ist nicht die Antwort. Sie können einfach nicht zwei Objekte in Javascript perfekt mit Nötigung vergleichen, aber Sie können diese Objekte leicht stringifizieren und die Strings vergleichen. – lepp