2013-10-07 18 views
9

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?

cevap

İlgili konular