Как проверить события на корневом элементе компонента в vue 2?

«throws» - это объявление о том, что метод будет вызывать определенные исключения. Это выполняется компилятором java для проверенных исключений, а не для ошибок или исключенных исключений.

«throw new» - это два ключевых слова в java, поэтому мы можем разбить его ...

  • «throw» - это оператор, который генерирует исключение
  • «new» - это оператор, который создает новый экземпляр объекта

, «try» block позволяет вам выполнять методы, объявляющие, что они генерируют исключения, и именно там вы используете предложение catch, чтобы поймать эти заброшенные исключения.

Кроме того, есть блок try-with-resources где вы можете использовать блок try для работы с расходуемым ресурсом (скажем, потоком), который реализует AutoCloseable, а затем закрывает его.

В блок try также есть «finally», что позволяет вы должны выполнить очистку или любые другие методы, которые ДОЛЖНЫ выполнять после блока try, независимо от того, происходят ли исключения или нет.

0
задан Andrei Gheorghiu 24 February 2019 в 05:55
поделиться

1 ответ

Другая возможность - найти ваш элемент в dom и проверить значение испускаемого корневого компонента.

import { shallowMount } from '@vue/test-utils'
import MyComponent from './MyComponent.vue'
import SubComponent from './SubComponent.vue'

describe('MyComponent', () => {    

  it('should emit baz on subcomponent foo', () => {
    const wrapper = shallowMount(MyComponent)
    const subComponent = wrapper.find(SubComponent)

    expect(subComponent.exists()).toBe(true)
    expect(wrapper.emitted('baz')).toBeUndefined()

    subComponent.vm.$emit('foo', ['hello'])
    expect(wrapper.emitted('baz')[0]).toEqual(['hello'])
    // or expect(wrapper).toEmit('baz', 'hello') cf. below for toEmit
  })

})

Если вы хотите, чтобы пользователь соответствовал Jest:

toEmit(received, eventName, data) {
  if (data) {
    expect(received.emitted()[eventName][0]).toEqual([data])
  } else {
    expect(received.emitted()[eventName][0]).toEqual([])
  }
  return { pass: true }
} 
0
ответ дан mickaelw 24 February 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: