Ich habe versucht, eine deepEqual Behauptung mit sollte.js (die neueste Version) und hatte keinen Erfolg. Ich kann Dinge mit equal
arbeiten, aber nicht mit deepEqual
. Tatsächlich sehe ich, dass es keine deepEqual
Methode gibt.Wie macht man eine deepEqual Behauptung mit sollte.js?
Hier ist, was ich versucht habe:
> require('should')
{...}
> > var x = Number(8)
undefined
> x.should.equal(8)
{ obj: 8 }
> x.should.equal(9)
AssertionError: expected 8 to equal 9
at ....
> x.should.deepEqual(8)
TypeError: Object #<Object> has no method 'deepEqual'
Fair enough. Jetzt in should
suchen, ich sehe, es ist ein Getter:
> Object.getOwnPropertyDescriptor(Object.prototype, 'should')
{ get: [Function],
set: [Function],
enumerable: false,
configurable: true }
Da es ein Getter ist, wie ich untersuchen ihre Schlüssel? Diese fast funktioniert:
> Object.keys(Object.prototype.should)
[ 'obj' ]
Aber dann sehe ich
> Object.getOwnPropertyDescriptor(should.obj)
{ value: undefined,
writable: false,
enumerable: false,
configurable: false }
Also lieber an dieser Stelle stecken ich. Ich möchte nur sehen, was die Dinge können should
folgen.
ich tatread the docs und es sagt, dass should.js
buchstäblich Knotens Assertion-Modul erweitert, aber Knotens assert deepEqual
zulässt.
> assert = require('assert')
> assert.deepEqual
[Function: deepEqual]
Das sollte docs auch nicht deepEqual
erwähnt überhaupt, was wirklich hat mich verwirrt. Um die Dinge noch verwirrender zu machen, ich tun siehe deepEqual
, wenn ich should
auf dem Knoten REPL eingeben. Aber es ist in einem ok
Element vergraben, soweit ich das beurteilen kann.
TL; DR: Wie rufe ich assertEqual
oder sein Äquivalent von should
?