Javascript Vue.js+;js-为什么在对head()方法进行单元测试时,计算属性未定义?

Javascript Vue.js+;js-为什么在对head()方法进行单元测试时,计算属性未定义?,javascript,unit-testing,vue.js,nuxt.js,Javascript,Unit Testing,Vue.js,Nuxt.js,我有一个Vue.js+Nuxt.js组件,它有一个方法: 测试失败,并显示以下消息: AssertionError:预期未定义为等于“我的标题” 为什么即使我模拟计算属性,它仍然没有定义 我通过target.vm.$options调用head()方法与此有关吗?您需要将上下文传递到head调用中 const-actual=target.vm.$options.head.call(target.vm)这让我头疼。。。非常感谢这个解决方案。 <script> export def

我有一个Vue.js+Nuxt.js组件,它有一个方法:

测试失败,并显示以下消息:

AssertionError:预期未定义为等于“我的标题”

为什么即使我模拟计算属性,它仍然没有定义


我通过
target.vm.$options
调用
head()
方法与此有关吗?

您需要将上下文传递到head调用中


const-actual=target.vm.$options.head.call(target.vm)

这让我头疼。。。非常感谢这个解决方案。
<script>
    export default {
        name: 'my-page',
        head() {
            return { title: `${this.currentPage}` };
        },
        ...
    }
</script>
it('should set the title to "my page"', () => {

    const options = {
        computed:{
            currentPage: () => {
                return 'My Title';
            }
        }
    };

    const target = shallowMount(MyPage, options);

    const actual = target.vm.$options.head();

    expect(actual.title).to.equal("My Title");

});