should.js (최신 버전)로 deepEqual 어서션을 만들려고했지만 아무런 성공도 얻지 못했습니다. 나는 equal
으로 일할 수 있지만, deepEqual
으로는 할 수 없습니다. 실제로 나는 deepEqual
방법이 없다는 것을보고 있습니다.should.js로 deepEqual 어서션을 수행하는 방법은 무엇입니까?
는 여기에 내가 무엇을 시도했다입니다 : 제법
> 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'
. 그것은 게터이기 때문에
> Object.getOwnPropertyDescriptor(Object.prototype, 'should')
{ get: [Function],
set: [Function],
enumerable: false,
configurable: true }
, 어떻게 그 키를 조사하기 : 이제 should
에보고, 나는 그것이 게터?을 참조하십시오
> Object.keys(Object.prototype.should)
[ 'obj' ]
을하지만 그때 나는
> Object.getOwnPropertyDescriptor(should.obj)
{ value: undefined,
writable: false,
enumerable: false,
configurable: false }
그래서 나는 오히려이 시점에서 붙어있어 볼이 거의 작동합니다. 나는 단지 어떤 것들이 따라 올 수 있는지보고 싶습니다. should
.
I 는read the docs을했고 그것은 should.js
그대로 노드의 어설 션 모듈을 확장하지만, 노드의 어설 deepEqual
을 허용 않는 것을 말한다.
> assert = require('assert')
> assert.deepEqual
[Function: deepEqual]
는 문서도 정말 혼란이있는, 모든 deepEqual
을 언급하지 않는 것이다. 더 복잡한 것을 만들기 위해 을 수행하십시오. 노드 REPL에 should
을 입력하면 deepEqual
을 참조하십시오. 하지만 그것은 내가 말할 수있는 한 ok
요소에 묻혀 있습니다.
TL : DR : assertEqual
또는 그 등가물을 should
(으)로 전화하려면 어떻게해야합니까?