先贴上代码:
const automator = require('miniprogram-automator');
automator.connect({
wsEndpoint: 'ws://localhost:4444',
}).
then((miniProgram) =>
{
return miniProgram.reLaunch('/pages/index/index').
then(async () =>
{
console.log("mock before: ", await miniProgram.callWxMethod('getStorageSync', 'test')) // -> ''
await miniProgram.mockWxMethod('getStorageSync', 'mockValue')
console.log("mock after: ", await miniProgram.callWxMethod('getStorageSync', 'test')) // -> 'mockValue'
await miniProgram.restoreWxMethod('getStorageSync')
console.log("restore after: ", await miniProgram.callWxMethod('getStorageSync', 'test')) // -> ''
}).
then(() => miniProgram?.disconnect()).
then(() => null);
}).
catch((error) =>
{
console.log("Test error:", error);
});
运行结果是:
第一次运行:
mock before:
mock after: mockValue
restore after: mockValue
之后每次运行:
mock before: mockValue
mock after: mockValue
restore after: mockValue
说明一下:
- 重新编译后,就恢复第一次的了。
- 可能是connect的方式,之前的mock不会丢失,包括其它对小程序环境产生影响的都不会恢复。
- 不使用launch是因为,每次都启动一下IDE,太慢了。
你好,请具体提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
miniprogram-automator 不是小程序里用的。代码片段只能是小程序或小游戏的。
我上面贴的代码,已经可以复现了,里面关键代码还是你们文档里的例子。
你们可以拿任何小程序测试,这里面不涉及任何与小程序业务代码相关的部署。
https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/miniprogram.html
在miniProgram.restoreWxMethod那段里面的示例代码就可以重现了。