Sinon: Rintisan variabel global

Dibuat pada 7 Jan 2019  ·  3Komentar  ·  Sumber: sinonjs/sinon

Modul yang ingin saya uji dan/atau tiru menggunakan beberapa variabel global.

Misalnya, kode sumber modul membuat referensi ke variabel session , yang tidak didefinisikan di mana pun tetapi tersedia saat runtime.

Pertimbangkan modul globals.js :

let globals = {
    contextName: "DATA_PIPELINE",
    reportContext: "report",
    session: session
};

module.exports = globals;

session tidak ditentukan dalam file ini tetapi tersedia saat runtime. Ini adalah variabel global lingkungan (tidak di bawah kendali saya).

Saya perhatikan bahwa dengan pengatur waktu palsu, Anda telah berhasil mengganti implementasi fungsi global seperti setTimeout. Bagaimana kita bisa menerapkan ini ke fungsi/objek global apa pun?

Semua 3 komentar

Mungkin sinon.replace(object, prop, replacement) adalah yang Anda cari?
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replacement

Kami mencoba untuk menjaga agar daftar masalah GitHub tetap rapi dan fokus pada bug dan diskusi fitur. Tiket ini terlihat seperti pertanyaan penggunaan; silakan kirim ke StackOverflow dan beri tag dengan sinon , sehingga komunitas yang lebih besar dapat membantu menjawab pertanyaan Anda.

Di Node.js, Anda dapat melakukan sesuatu seperti:

global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests
Apakah halaman ini membantu?
0 / 5 - 0 peringkat