2016-03-23 25 views
3

Redux konteynerindeki bir işlevi test etmeye çalışıyorum ancak sorun neredeyse tamamen redux veya tepki veriyor. Temel olarak test etmeye çalıştığım fetchData işlevi, iki işlevi parametre olarak alır ve çağırır. Bu fetchData firstStub ve secondStub bir işlev olmadığı hakkında şikayet benim işlevi gerçekleştiğindeSinon anonim saplama bir parametre olarak iletildi

var firstStub = sinon.stub().withArgs(mockResponse).returns('success'); 
var secondStub = sinon.stub().withArgs(mockResponse).returns('success'); 
AccountApp.fetchData({ firstStub , secondStub }); 

: Yapmak umuyordum ne

iki anonim koçanları ve işlevine bu şekilde onları geçmek oldu. Saplama nesnesi olduklarını biliyorum ama durum buysa, bu durumu yönetmenin doğru yolu nedir?

+2

- {firstStub 'Bir nesneyi geçiyoruz yani: Yani muhtemelen böyle işlevini çağırmak istiyorum firstStub, secondStub: secondStub} '- bunu gerçekten yapmak istiyor musun? – Nicole

+0

Evet, bu konuda da biraz şaşırdım, dürüstçe, neden bunu yaptığını bilmiyorum. Sorunun kaynağı olabileceğini düşünüyor musunuz? – ralzaul

+0

iyi görünüyor, şimdi sorun şu ki bu iyi çalışıyor, ama nedenini bilmiyor musunuz? – ralzaul

cevap

1

bu aslında (ES6 desugaring sonra) bu çağırmak anlamına gelir, çünkü

AccountApp.fetchData({ firstStub , secondStub }); 

suçlu gibi görünüyor olarak koçanları geçme:

AccountApp.fetchData({ firstStub: firstStub, secondStub: secondStub }); 

ve bunun anlamı sizin fetchData() işlev böyle bir uygulamaya sahip olmalıdır:

function(args) { 
    // .... 
    args.firstStub(params); 
    args.secondStub(params); 
    // ... 
}; 

Ben ciddiyim Üretim kodunuzun geri bildirimleri "saplama" olarak ifade ettiğinden şüpheniz olabilir. Ben argüman `{firstStub, secondStub}` görmek sürpriz biraz olduğum

AccountApp.fetchData(firstStub, secondStub); 
İlgili konular