1
比方說,我有一個對象具有創建另一個對象作爲其操作的一部分的函數。我應該如何監視一個在另一個對象內調用的構造函數?
sinon = require('sinon')
chai = require 'chai'
sinonChai = require("sinon-chai")
chai.use(sinonChai)
chai.should()
Paper = {}
Paper.Origami = require('../assets/src/coffee/origami.coffee').Paper.Origami
describe '#throwOrigami', ->
it 'should create origami and throw it', ->
m = new Monkey()
throwSpy = sinon.spy(m, 'throwOrigami')
createSpy = sinon.spy(Paper, 'Origami')
# next function creates origami, then 'throws' it at someone
m.throwOrigami();
createSpy.should.have.been.calledWithNew
throwSpy.should.have.been.calledOnce
猴類在Paper.Origami
頂部有一個要求。
如果我在測試中創建一個摺紙,但我不能通過,如果我將它留給Monkey對象內部的創建。我懷疑這是因爲兩個對象之間的需求路徑不同 - 也許節點不會將它們視爲同一個對象。
問題:我可以讓sinon
間諜窺探Monkey
對象內發生的Origami
對象的創建嗎?