#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 …