ماذا تتوقع أن يحدث؟ أتوقع أن عدد طلبات sinon.fakeServer. كان أكثر من 1
ما يحدث بالفعل sinon.fakeServer.requests دائمًا ما يكون باطل
كيف تتكاثر
describe('--Pictures Selector--', () => {
let server, store, wrap;
beforeEach(() => {
server = sinon.fakeServer.create();
server.respondWith("GET", /\/api\/users/, [
200, {"Content-Type":"application/json"}, JSON.stringify(mock_pictures_list_store)
]);
store = new Pictures_List_Store([]);
wrap = mount(
<Selectable_Picture_List store={store} />
);
axios.get('http://localhost:9157/api/users/5/images/30/0');
console.log("%c server.requests", "color: #C78B41", server.requests);
});
afterEach(() => {
server.restore();
});
it('render drop zone', () => {
server.respond();
console.log("%c server.requests", "color: #C78B41", server.requests);
expect(wrap.find('Dropzone')).to.have.length(1);
});
});
أستدعي طلبات
axios.get
مباشرةً في كود الاختبار ، كما يتم استدعاؤها في طريقة componentWillMount
لمكوِّن رد فعل.
axios.get()
غير متزامن. وهذا يعني أنه عندما الخاص بك console.log
يمتد الخط، و xmlhttprequest
لم يخلق بعد.
شكرا على الاجابة. ولكن في حالة استخدام server.autoRespond = true;
أو server.respondImmediately = true;
أو server.respond();
server. لا تزال الطلبات فارغة. هل من الصواب أن هذه الأشياء لا تعمل؟
هل هناك أي طريقة لبدء اختبار HTML باستخدام fakeServer؟
هل هناك أي طريقة لبدء اختبار HTML باستخدام fakeServer؟
نعم هناك .
الحل لرؤية الطلبات في beforeEach
الخاص بك أعلاه ذو شقين:
beforeEach
console.log
ستبدو التغييرات كما يلي:
beforeEach(done => {
// ...
axios.get(...);
setTimeout(() => {
console.log("%c server.requests", "color: #C78B41", server.requests);
done();
});
});
رائع. هذا يعمل! شكرا. أخيرًا ، حصلت على الطريق لبناء الاختبارات المطلوبة.
التعليق الأكثر فائدة
نعم هناك .
الحل لرؤية الطلبات في
beforeEach
الخاص بك أعلاه ذو شقين:beforeEach
console.log
ستبدو التغييرات كما يلي: