收藏
回答

miniprogram-automator的restoreWxMethod好像无效呀?

先贴上代码:

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


说明一下:

  1. 重新编译后,就恢复第一次的了。
  2. 可能是connect的方式,之前的mock不会丢失,包括其它对小程序环境产生影响的都不会恢复。
  3. 不使用launch是因为,每次都启动一下IDE,太慢了。
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-10-15

    你好,请具体提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2021-10-15
    有用
    回复 4
登录 后发表内容