收藏
回答

自动化测试工具automator 断言 wx.showToast在插件中无效?

let currentToastTitle = ''
await miniProgram.exposeFunction('setToastTitle', function (title) {
  currentToastTitle = title
})
await miniProgram.mockWxMethod('showToast', function (obj) {
  console.log('showToast', obj)
  setToastTitle(obj.title)
})

it.only('mock toast', async ()=>{
    page = await miniProgram.redirectTo('/pages/main/index/index')
    await page.waitFor(3000)
    const testMock = await page.$('test-mock-comp') // test-mock-comp 为自定组件
    const testMockBtn = await testMock.$('.test-mock-btn')
    testMockBtn.tap()
    await page.waitFor(3000)
    expect(currentToastTitle).toBe('aaa') // 这个 case OK

    const myClip = await page.$('test-mock-comp-from-plugin') // test-mock-comp-from-plugin 为插件中的自定义组件
    const countDownBtn = await myClip.$('.opt-item-countdown')
    await countDownBtn.tap()
    await page.waitFor(3000)
    expect(currentToastTitle).toBe('bbb') // 这个 case NG
  },60000)

  OK 的 case会拦截到 wx.showToast 方法,不会出现toast弹框,断言OK
  NG 的 case 无法拦截到 wx.showToast 方法,弹框依旧会出现,断言NG

  怎么解决这种问题呢?还是我姿势不对?
回答关注问题邀请回答
收藏

1 个回答

  • RedHood
    RedHood
    2020-11-05

    插件里面调用的 wx 跟正常页面的 wx 对象不是同一个,目前自动化还不支持 mock 插件内的 wx 对象方法。

    2020-11-05
    有用 1
    回复 1
    • 世界已完蛋丶
      世界已完蛋丶
      2021-09-15
      大佬我也是这样写的,为什么我这边弹框拦截到了,但是log内容不打印,打印currentToastTitle 也显示为空字符串
      2021-09-15
      回复
登录 后发表内容
问题标签