Sinon: عدد طلبات fakeServer دائمًا ما يكون فارغًا

تم إنشاؤها على ٦ يونيو ٢٠١٧  ·  4تعليقات  ·  مصدر: sinonjs/sinon

  • إصدار Sinon: 2.3.2
  • البيئة: عداء اختبار الكرمة
  • مثال URL:
  • المكتبات الأخرى التي تستخدمها: mocha

ماذا تتوقع أن يحدث؟ أتوقع أن عدد طلبات 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 لمكوِّن رد فعل.

التعليق الأكثر فائدة

هل هناك أي طريقة لبدء اختبار HTML باستخدام fakeServer؟

نعم هناك .

الحل لرؤية الطلبات في beforeEach الخاص بك أعلاه ذو شقين:

  1. تمرير رد نداء إلى وظيفة beforeEach
  2. انتظر لحظة لتشغيل console.log

ستبدو التغييرات كما يلي:

beforeEach(done => {
  // ...
  axios.get(...);
  setTimeout(() => {
    console.log("%c server.requests", "color: #C78B41", server.requests);
    done();
  });
});

ال 4 كومينتر

axios.get() غير متزامن. وهذا يعني أنه عندما الخاص بك console.log يمتد الخط، و xmlhttprequest لم يخلق بعد.

شكرا على الاجابة. ولكن في حالة استخدام server.autoRespond = true; أو server.respondImmediately = true; أو server.respond(); server. لا تزال الطلبات فارغة. هل من الصواب أن هذه الأشياء لا تعمل؟
هل هناك أي طريقة لبدء اختبار HTML باستخدام fakeServer؟

هل هناك أي طريقة لبدء اختبار HTML باستخدام fakeServer؟

نعم هناك .

الحل لرؤية الطلبات في beforeEach الخاص بك أعلاه ذو شقين:

  1. تمرير رد نداء إلى وظيفة beforeEach
  2. انتظر لحظة لتشغيل console.log

ستبدو التغييرات كما يلي:

beforeEach(done => {
  // ...
  axios.get(...);
  setTimeout(() => {
    console.log("%c server.requests", "color: #C78B41", server.requests);
    done();
  });
});

رائع. هذا يعمل! شكرا. أخيرًا ، حصلت على الطريق لبناء الاختبارات المطلوبة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات