Funzione Sto spiando, riceve oggetto come argomento. Devo affermare che la funzione è stata chiamata con determinate proprietà dell'oggetto.È stato chiamato con asserzione dell'oggetto
per esempio: la mia SUT ha:
function kaboom() {
fn({
foo: 'foo',
bar: 'bar',
zap: function() { ... },
dap: true
});
}
e nella mia prova posso fare questo:
fnStub = sinon.stub();
kaboom();
expect(fnStub).to.have.been.called;
e che funziona (è bene sapere che fn
's stato chiamato). Ora ho bisogno di assicurarmi che l'oggetto giusto sia passato nella funzione. Mi interessa solo le proprietà foo
e bar
, ovvero devo impostare la corrispondenza per le proprietà specifiche dell'argomento. Come?
upd: sinon.match() sembra funzionare per oggetti semplici. Alziamo il bar, vero?
Cosa fare se si desidera includere la funzione zap
in asserzione? Come faccio a fare quel lavoro?
ma che per qualche motivo non ha funzionato per me, direbbe che le proprietà di riposo non corrispondono . fammi riprovare, forse sto facendo qualcosa di sbagliato qui – Agzam
qual è l'esatto messaggio di errore che stai ricevendo? Sta dicendo che la funzione non viene chiamata affatto o dice che viene chiamata con gli argomenti sbagliati? –
Oh, in realtà ho trovato quello che non funzionava. sinon.match con un oggetto che ha una proprietà di una funzione. Non funziona qualcosa come 'sinon.match ({foo: sinon.stub()})' non riesce a trovare un modo per farlo funzionare – Agzam