Использование Vue CLI У меня есть модульный тест, который я пытаюсь проверить на true / false, который выглядит следующим образом:
describe('The thing', () => {
it('must be available.', () => {
const available = true
const wrapper = shallowMount(MyVueComponent, {
propsData: { available },
})
expect(wrapper).to.be.true
})
})
Когда я запускаю npm run test:unit
Я получаю следующее:
AssertionError: ожидается, что {Object (isFunctionalComponent, _emitted, ...)} будет истинным
Если я просто проверюзначение available
, тогда все хорошо.Но похоже, что я делаю это неправильно.
Другие написанные мною тесты работают нормально, так как я проверяю текстовое значение:
describe('The thing', () => {
it('should have a name.', () => {
const name = 'Hal'
const wrapper = shallowMount(MyVueComponent, {
propsData: { name },
})
expect(wrapper.text()).to.include(name)
})
})
Я не уверен, как проверитьчто available
является логическим значением и должно быть true
.Будем благодарны за любые предложения!
РЕДАКТИРОВАТЬ
Вот как выглядит мой компонент Vue:
export default {
name: 'MyVueComponent',
props: {
name: String
},
data: function() {
return {
available: true,
}
},
}
РЕДАКТИРОВАТЬ 2
Кажется, это работает в моем модульном тесте:
describe('The thing', () => {
it('must be available.', () => {
const available = true
const wrapper = shallowMount(MyVueComponent, {
propsData: { available },
})
expect(wrapper.vm.available).to.be.true
})
})
Тем не менее, он смотрит на мой фактический компонент в моем каталоге /src
.Если я изменю значения данных с true
на false
, мои тесты пройдут правильно.Я не уверен, как сделать так, чтобы данные оставались на тестовом уровне.Поэтому, если бы я изменил const available = false
, мой тест не прошел бы - но это не так.
РЕДАКТИРОВАТЬ 3
Кажется, это работает (для доступа кобъект данных):
describe("The thing", () => {
it("must be available.", () => {
const defaultData = MyVueComponent.data();
// const wrapper = shallowMount(MyVueComponent, {});
expect(defaultData.available).to.be.true;
});
});
Но все равно кажется неправильным, что я ссылаюсь на свой реальный код, а не придерживаюсь модульных тестов.