should.js (en son sürüm) ile bir deepEqual savcılığı yapmaya çalıştım ve hiç bir başarı elde etmedim. equal
ile çalışmak için ancak deepEqual
ile işlerini halledebilirim. Aslında ben deepEqual
yönteminin olduğunu görüyorum.Nasıl biri, ya da daha az bir hata gerektirir?
İşte çalıştığım buydu: Yeterince adil
> 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'
. Bir alıcı olduğundan
> Object.getOwnPropertyDescriptor(Object.prototype, 'should')
{ get: [Function],
set: [Function],
enumerable: false,
configurable: true }
, nasıl onun tuşları incelemek: Artık should
içine bakarak, ben bir gaz gidericidir görüyor musunuz?
> Object.keys(Object.prototype.should)
[ 'obj' ]
Ama sonra
> Object.getOwnPropertyDescriptor(should.obj)
{ value: undefined,
writable: false,
enumerable: false,
configurable: false }
yüzden ziyade bu noktada sıkışıp kaldım bkz: Bu neredeyse çalışır. Sadece should
'un neleri takip edebileceğini görmek isterim.
ben read the docs yaptım ve should.js
anlamıyla düğümün assert modülünü uzanır, ancak düğümün assert deepEqual
izin verdiğini söylüyor.
> assert = require('assert')
> assert.deepEqual
[Function: deepEqual]
dokümanlar bile beni gerçekten karıştı olan, hiç deepEqual
söz etmeyin gerekir. İşleri daha da karmaşıklaştırmak için, numaralı telefonu, REPL düğümüne should
girdiğimde bir deepEqual
bakın. Ama anlayabildiğim kadarıyla bir ok
öğesinde gömülü.
TL; DR: assertEqual
veya eşdeğerini should
'dan nasıl arayabilirim?