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')
const testMockBtn = await testMock.$('.test-mock-btn')
testMockBtn.tap()
await page.waitFor(3000)
expect(currentToastTitle).toBe('aaa')
const myClip = await page.$('test-mock-comp-from-plugin')
const countDownBtn = await myClip.$('.opt-item-countdown')
await countDownBtn.tap()
await page.waitFor(3000)
expect(currentToastTitle).toBe('bbb')
},60000)
OK 的 case会拦截到 wx.showToast 方法,不会出现toast弹框,断言OK
NG 的 case 无法拦截到 wx.showToast 方法,弹框依旧会出现,断言NG
怎么解决这种问题呢?还是我姿势不对?
插件里面调用的 wx 跟正常页面的 wx 对象不是同一个,目前自动化还不支持 mock 插件内的 wx 对象方法。