我已经在 Vue.js 中为我的项目构建了简单的 ErrorBoundary 组件,并且正在努力为其编写单元测试。组件代码如下:
<template>
<div class="overvue-error-boundary">
<slot v-if="!error" />
<div class="error-message" v-else>Something went horribly wrong here.</div>
</div>
</template>
<script>
export default {
data () {
return {
error: false
}
},
errorCaptured (error, vm, info) {
this.error = true;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我创建了一个 ErrorThrowingComponent,它在created()生命周期挂钩上抛出错误,以便我可以测试 ErrorBoundary:
const ErrorThrowingComponent = Vue.component('error-throwing-component', {
created() {
throw new Error(`Generic error`);
},
render (h) {
return h('div', 'lorem ipsum')
}
});
describe('when component in slot throws an error', () => {
it('renders …Run Code Online (Sandbox Code Playgroud)