Sinon: jumlah permintaan fakeServer selalu nol

Dibuat pada 6 Jun 2017  ·  4Komentar  ·  Sumber: sinonjs/sinon

  • Versi Sinon : 2.3.2
  • Lingkungan: pelari ujian karma
  • Contoh URL:
  • Pustaka lain yang Anda gunakan: mocha

Apa yang Anda harapkan terjadi? Saya berharap jumlah sinon.fakeServer.requests lebih dari 1

Apa yang sebenarnya terjadi sinon.fakeServer.requests selalu null

Cara memperbanyak

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);
   });
});


Saya memanggil permintaan axios.get langsung dalam kode pengujian dan juga dipanggil dalam metode componentWillMount dari komponen react.js

Komentar yang paling membantu

Apakah ada cara untuk meluncurkan pengujian HTML dengan fakeServer ?

Ya, ada .

Solusi untuk melihat permintaan di beforeEach atas ada dua:

  1. meneruskan panggilan balik ke fungsi beforeEach
  2. tunggu sebentar untuk menjalankan console.log

Perubahan akan terlihat seperti:

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

Semua 4 komentar

axios.get() tidak sinkron. Ini berarti bahwa ketika baris console.log berjalan, xmlhttprequest belum dibuat.

Terima kasih atas jawabannya. Tetapi jika saya menggunakan server.autoRespond = true; atau server.respondImmediately = true; atau server.respond(); server.requests masih kosong. Benarkah hal-hal itu tidak berhasil?
Apakah ada cara untuk meluncurkan pengujian HTML dengan fakeServer ?

Apakah ada cara untuk meluncurkan pengujian HTML dengan fakeServer ?

Ya, ada .

Solusi untuk melihat permintaan di beforeEach atas ada dua:

  1. meneruskan panggilan balik ke fungsi beforeEach
  2. tunggu sebentar untuk menjalankan console.log

Perubahan akan terlihat seperti:

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

Wow. Itu berhasil! Terima kasih. Akhirnya, saya mendapatkan cara untuk membuat tes yang diperlukan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat