«throws» - это объявление о том, что метод будет вызывать определенные исключения. Это выполняется компилятором java для проверенных исключений, а не для ошибок или исключенных исключений.
«throw new» - это два ключевых слова в java, поэтому мы можем разбить его ...
, «try» block позволяет вам выполнять методы, объявляющие, что они генерируют исключения, и именно там вы используете предложение catch, чтобы поймать эти заброшенные исключения.
Кроме того, есть блок try-with-resources где вы можете использовать блок try для работы с расходуемым ресурсом (скажем, потоком), который реализует AutoCloseable, а затем закрывает его.
В блок try также есть «finally», что позволяет вы должны выполнить очистку или любые другие методы, которые ДОЛЖНЫ выполнять после блока try, независимо от того, происходят ли исключения или нет.
Другая возможность - найти ваш элемент в 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 }
}