提交 54314d03 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

feat: 补充 App.onError 捕获异步异常示例及测试 issue:7116

上级 c90a175f
<template>
<view class="page">
<button id="trigger-error" @click="triggerError">trigger error</button>
<button class='mt-10' id="trigger-timeout-error" @click="triggerTimeoutError">trigger timeout error</button>
</view>
</template>
......@@ -13,6 +14,11 @@
const triggerError = () => {
throw new Error('trigger error in throw error composition page')
}
const triggerTimeoutError = () => {
setTimeout(() => {
throw new Error('setTimeout trigger error in throw error composition page')
}, 10)
}
// 自动化测试
const getLifeCycleNum = () : number => {
......
<template>
<view class="page">
<button id="trigger-error" @click="triggerError">trigger error</button>
<button class='mt-10' id="trigger-timeout-error" @click="triggerTimeoutError">trigger timeout error</button>
</view>
</template>
<script lang="uts">
import { state } from '@/store/index.uts'
import { state } from '@/store/index.uts'
export default {
onReady(){
export default {
onReady() {
throw new Error('error in error options page onReady')
},
methods: {
triggerError(){
triggerError() {
throw new Error('trigger error in throw error options page')
},
triggerTimeoutError() {
setTimeout(() => {
throw new Error('setTimeout trigger error in throw error options page')
}, 10)
},
// 自动化测试
getLifeCycleNum() : number {
return state.lifeCycleNum
}
},
}
}
</script>
\ No newline at end of file
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
const isAndroid = platformInfo.includes('android')
const isIos = platformInfo.includes('ios')
const OPTIONS_PAGE_PATH = '/pages/error/throw-error/throw-error-options'
const COMPOSITION_PAGE_PATH = '/pages/error/throw-error/throw-error-composition'
const HOME_PAGE_PATH = '/pages/index/index'
......@@ -27,6 +30,15 @@ describe('throw error', () => {
lifeCycleNum = await page.callMethod('getLifeCycleNum')
expect(lifeCycleNum).toBe(200)
if (isAndroid || isIos) {
const triggerTimeoutErrorBtn = await page.$('#trigger-timeout-error')
await triggerTimeoutErrorBtn.tap()
await page.waitFor(500)
lifeCycleNum = await page.callMethod('getLifeCycleNum')
expect(lifeCycleNum).toBe(300)
}
page = await program.navigateTo(HOME_PAGE_PATH)
await page.waitFor('view')
expect(page.path).toBe(HOME_PAGE_PATH.substring(1))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册