Vue.js + Nuxt.js - Почему мое вычисляемое свойство не определено, когда я тестирую метод head ()? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть компонент Vue.js + Nuxt.js с методом head():

<script>
    export default {
        name: 'my-page',
        head() {
            return { title: `${this.currentPage}` };
        },
        ...
    }
</script>

currentPage - это вычисляемое свойство.

Когда я запускаю свое приложение, компонент работает правильно, и он устанавливает для заголовка страницы правильное значение.

Когда я запускаю этот код из модульного теста Jest + Vue Test Utils, код завершается ошибкой:

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");

});

Сбой теста с сообщением:

AssertionError: ожидается, что undefined будет равняться 'My Title'

Почему вычисляемое свойство не определено, хотя яиздеваться?

Имеет ли отношение к тому, что я вызываю метод head() через target.vm.$options?

1 Ответ

2 голосов
/ 13 мая 2019

Вам нужно передать контекст в ваш главный вызов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...