AVA Тестирование Vue — разница в пробелах

#javascript #vue.js #ava

#javascript #vue.js #ава

Вопрос:

Прямо сейчас я смотрю эпизод Laracast о тестировании Vue с АВОЙ. Пока все получается, но теперь я обнаружил интересную ошибку / проблему.

Мой notification.js:

 import test from 'ava';
import Notification from '../src/Notification';

test('that it renders a notification', t => {
    //V2
    let N = Vue.extend(Notification);
    let string = 'Foobar';
    string.trim();
    let vm = new N({propsData:{message: string}}).$mount();


    // V1
    //let n = new Vue(Notification).$mount();
    //t.truthy('unicorn'); // assertation needed, does not have any importance
    //console.log(n.$el.innerHTML);

    t.is(vm.$el.textContent,'Foobar');
});
 

И импортированный Notification.js выглядит примерно так:

 export default{
    template:'<div> {{ message }} </div>',

    props:['message']
};
 

Я получаю следующее сообщение об ошибке:

 that it renders a notification

  test/notification.js:18

   17:                                       
   18:     t.is(vm.$el.textContent,'Foobar');
   19: });                                   

  Difference:

  - ' Foobar '
    'Foobar'
 

Как вы можете видеть, AVA считает, что строки в сообщениях отличаются на два пробела до и после Foobar. Я даже пытался обрезать () строку, как вы можете видеть, но все равно возникает ошибка.

Есть у кого-нибудь идеи, откуда берутся эти пробелы или как это решить?

Комментарии:

1. Вы должны сохранить результат trim() , например. string = string.trim() . И вы должны обрезать vm.$el.textContent .

Ответ №1:

Я нашел ошибку, и это глупая ошибка:

 '<div> {{ message }} </div>'
 

должно быть

 <div>{{ message }}</div>'
 

Пробелы , где в div …