sinon:^ 7.5.0 摩卡咖啡:3.4.2
的代码如下stub.value(newVal) 为此存根定义一个新值。 sinon.stub(myObj,'example')。value('newValue');
使用 mocha 和 sinion 的代码。我只想存入 process.env.NODE_ENV 的值。
sinon.stub(process.env, 'NODE_ENV').value("prod");
我已经打印了 proccess.env ,它具有一个键 NODE_ENV ,它指向一个字符串'dev'
。
这是运行摩卡测试的结果。
TypeError: Cannot convert a Symbol value to a string
at module.exports (node_modules/sinon/lib/sinon/util/core/is-es-module.js:16:58)
at stub (node_modules/sinon/lib/sinon/stub.js:28:9)
at Sandbox.stub (node_modules/sinon/lib/sinon/sandbox.js:318:33)
莫名其妙的是,这行得通:
let whatever= { another_key: { onemore: "pure"} };
sinon.stub(whatever.another_key, 'onemore').value("mashed");
我也尝试过使用沙箱(我不明白为什么自v5以来sinon是沙箱的同义词),
let sandbox = sinon.createSandbox();
describe(....
...
beforeEach(function(){
sandbox.stub(process.env, 'NODE_ENV').value('prod');
});
afterEach(function(){
sandbox.restore();
});
);
相同错误。
我哪里出错了?
ps:我知道我可以保存process.env.NODE_ENV
,在测试过程中进行更改,然后重新设置。那是我的后备计划。
答案 0 :(得分:0)
这里是为process.env.NODE_ENV
制作存根的示例,在制作存根之前,我们需要在NODE_ENV
对象上声明process.env
属性。否则,将引发错误:
TypeError:无法存根不存在的自身属性NODE_ENV
index.test.ts
:
import sinon from "sinon";
import { expect } from "chai";
describe("59214393", () => {
it("should mock process.env", () => {
process.env.NODE_ENV = "";
const stub = sinon.stub(process.env, "NODE_ENV").value("prod");
expect(process.env.NODE_ENV).to.be.eq("prod");
stub.restore();
});
it("should back to original value", () => {
expect(process.env.NODE_ENV).to.be.eq("");
});
});
单元测试结果:
59214393
✓ should mock process.env
✓ should back to original value
2 passing (11ms)
---------------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
---------------|----------|----------|----------|----------|-------------------|
All files | 100 | 100 | 100 | 100 | |
index.test.ts | 100 | 100 | 100 | 100 | |
---------------|----------|----------|----------|----------|-------------------|
源代码:https://github.com/mrdulin/mocha-chai-sinon-codelab/tree/master/src/stackoverflow/59214393