Aut*_*ico 7 mocking stub node.js sinon
我正在使用process.platform并希望将该字符串值存根以伪造不同的操作系统.
(这个对象是我无法实现的,我需要测试它可以采用的不同值)
我没试过就试过以下内容:
stub = sinon.stub(process, "platform").returns("something")
Run Code Online (Sandbox Code Playgroud)
我收到了错误 TypeError: Attempted to wrap string property platform as function
如果我尝试使用这样的模拟,会发生同样的事情:
mock = sinon.mock(process);
mock.expects("platform").returns("something");
Run Code Online (Sandbox Code Playgroud)
你不需要诗乃来完成你需要的东西.虽然这个process.platform过程不是writable,但确实如此configurable.因此,您可以暂时重新定义它,并在完成测试后立即恢复它.
我是这样做的:
var assert = require('assert');
describe('changing process.platform', function() {
before(function() {
// save original process.platform
this.originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform');
// redefine process.platform
Object.defineProperty(process, 'platform', {
value: 'any-platform'
});
});
after(function() {
// restore original process.platfork
Object.defineProperty(process, 'platform', this.originalPlatform);
});
it('should have any-platform', function() {
assert.equal(process.platform, 'any-platform');
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |