İşlev üzerinde casusluk yapıyorum, bir argüman olarak nesne alır. Bu işlevin, nesnenin belirli özellikleriyle çağrıldığını iddia etmem gerekiyor.Nesne iddiasıyla çağrıldı
örn:
function kaboom() {
fn({
foo: 'foo',
bar: 'bar',
zap: function() { ... },
dap: true
});
}
ve benim test ben bunu yapabilirsiniz: my SUT sahiptir
fnStub = sinon.stub();
kaboom();
expect(fnStub).to.have.been.called;
ve o (o fn
'ın çağrılmış olduğunu bilmekte fayda) çalışır. Şimdi doğru nesnenin işleve geçtiğinden emin olmalıyım. Sadece foo
ve bar
özelliklerini önemsiyorum, yani argümanın belirli özellikleri için eşleşme ayarlamalıyım. Nasıl?
upd: sinon.match() basit nesneler için çalışıyor gibi görünüyor. Barı yükseltelim mi?
zap
işlevini onaylama içine eklemek istiyorsam ne olur? Bu işi nasıl yaparım?
ama nedense benim için işe yaramadı ulaşmak için sinon.match birlikte
calledWith
kullanabilirsiniz, o dinlenme özellikleri eşleşmiyor söyleyebilirim . Tekrar deneyeyim, belki bir şeyler yanlış yapıyorum – Agzamaldığınız tam hata mesajı nedir? Fonksiyonun hiç çağrılmadığını mı söylüyor, yoksa yanlış argümanlarla çağrıldığını mı söylüyor? –
Aslında neyin işe yaramadığını buldum. sinon.match işlevi olan bir nesneye sahip. Bu çalışmıyor. sinon.match ({foo: sinon.stub()}) gibi bir şey bu işi yapmanın bir yolunu bulamıyor – Agzam