扫码关注官方订阅号
认证0级讲师
试试sinon呗,按你的需求:
var sinon = require('sinon'); //假设你有模块b,b里有个方法sayHi var b = { sayHi: function() { return new Date(); } }; //正常情况下,b.sayHi()应该输出当前日期 console.log(b.sayHi()); //the reay date //我们现在来模拟b模块的sayHi方法,让她永远返回999 var mockB = sinon.stub(b, 'sayHi', function() { return 999; }); //再来调用b.sayHi()试试? console.log(b.sayHi());//变成999了哦!!!
补充:
我假设你的b.js是如下结构:
b.js
export default { data: [{ id: 123, value: 'fuck' }] };
现在来补一下test:
import sinon from 'sinon'; import b from './b'; import {search} from './a'; var mockB = sinon.sandbox.create().stub(b, 'data', [{ id: 1, value: 'Hello' }]); //这个时候,因为b对象被sanbox替换了,于是当search(1)的时候,没有出现-1,而是Hello console.log(search(1)); //Hello
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
试试sinon呗,按你的需求:
补充:
我假设你的
b.js是如下结构:现在来补一下test: