React uygulamasının ilk grup boyutunu, sayfa yüklenemeyen eşzamansız olarak yüklenen ayrı bir paketten yükleyerek, webpack kod bölme özelliğini (require.ensure) kullanıyorum.Webpack'in require.ensure Stubunu Nasıl Yaparım?
Mükemmel çalışıyor, ama Bunun için birim sınama yazarken sorun yaşıyorum.
Benim sınama ayarlarım Mocha, Chai ve Sinon dayanmaktadır. test çalıştırırken
describe('When I render the component',() => {
let component,
mySandbox;
beforeEach(() => {
mySandbox = sandbox.create();
mySandbox.stub(require, 'ensure');
component = mount(<PageHeader />);
});
describe('the rendered component',() =>
it('contains the SideNav component',() =>
component.find(SideNav).should.have.length(1)
)
);
afterEach(() => mySandbox.restore());
});
, bu hata mesajı alıyorum: Burada
Ben şimdiye kadar denedim kodundan ilgili alıntıdır için kanca "her öncesinde""içerir SideNav bileşeni ":
require.ensure
sadece biz var olan bir yöntemdir, çünkü bu olur
sağlamak varolmayan kendi özelliğini saplama Can not paket demeti, ancak testlerimi web paketi ile paketlemiyorum, ne de yapmak istiyorum çünkü daha fazla yük ve muhtemelen daha uzun deneme yürütme süreleri yaratacaktır.
Yani benim soru:
WebPack yoluyla testleri çalıştırmadan webpack en require.ensure
Sinon ile saplama için bir yolu var mı? böylece require.ensure
etrafında testinde gerekli modülünden bu eşsiz require
almak için require
soyutlama bir tür ve o require
için ensure()
bir taklidini eklemektir alay tek yolu gerektiren bir
Siz doğrusınız. Her modül benzersiz bir 'require' işlevini alır. Düşündüğümden oldukça karmaşık. Bu konuda daha fazla bilgiyi buradan okuyabilirsiniz (http://fredkschott.com/post/2014/06/require-and-the-module-system/). 'Require.esnure' maymun yama için çok zor olacak. Ayrıca, @hinok –
tarafından önerilen babel-plugin-rewire gibi bir şeyi düşünmenizi öneririz. Sorununuz şu adreste yanıtlandı: https://stackoverflow.com/questions/33070482/writing-tests-for-javascript-module-using- webpacks-require-warranty-function –
Şey, projemi başlattığımda rewire kullanarak değerlendirdim ve Mockery'nin çok üstün olduğunu anladım, bu yüzden bu yazıyla rewire çözümünü nasıl kullanacağımı tahmin etmeliyim alay. –