udało mi się dostać process.env
być odpowiednio stubed w moich testów jednostkowych przez klonowanie go iw sposób teardown przywrócenie go.
przykład stosując Mocha
const env = Object.assign({}, process.env);
after(() => {
process.env = env;
});
...
it('my test',()=> {
process.env.NODE_ENV = 'blah'
})
Pamiętaj, to będzie działać tylko wtedy, gdy process.env jest tylko odczytywane w funkcji testowanej. Na przykład, jeśli testowany kod odczytuje zmienną i używa jej w zamknięciu, to nie zadziała. Prawdopodobnie unieważniasz buforowane wymagania, aby poprawnie to przetestować.
Na przykład dodaje nie będzie miał env zgaszone:
const nodeEnv = process.env.NODE_ENV;
const fnToTest =() => {
nodeEnv ...
}
Czy możesz wyjaśnić, dlaczego chcesz skrótową środowisko vars? Czy robisz to na podobnym do systemu operacyjnego lub systemu Windows? – slebetman
@slebetman często można polegać na zmiennych środowiskowych do konfiguracji, takich jak klucz API dla usługi, na której polegasz. Zobacz http://12factor.net/. –
@AndrewHomeyer: Tak, ale Ty nie ** ich ** - ustawiłeś poprawnie dla testu – slebetman