How to stub process.env in node.js?

Matt - sanemat picture Matt - sanemat · Jul 5, 2014 · Viewed 55.2k times · Source

I want to stub process.env.FOO with bar.

var sinon = require('sinon');
var stub = sinon.stub(process.env, 'FOO', 'bar');

I'm confused. I read document, but still I don't understand yet.sinonjs docs

sinonjs is one example, not sinonjs is okay.

Answer

Joshua Dutton picture Joshua Dutton · Mar 12, 2015

From my understanding of process.env, you can simply treat it like any other variable when setting its properties. Keep in mind, though, that every value in process.env must be a string. So, if you need a particular value in your test:

   it('does something interesting', () => {
      process.env.NODE_ENV = 'test';
      // ...
   });

To avoid leaking state into other tests, be sure to reset the variable to its original value or delete it altogether:

   afterEach(() => {
       delete process.env.NODE_ENV;
   });