programing

모의 장착 후크 Jest 테스트 유닛

goodsources 2022. 8. 1. 22:45
반응형

모의 장착 후크 Jest 테스트 유닛

부품에 대한 유닛 테스트를 하고 있습니다.단, 일부 컴포넌트에서는 이 컴포넌트에서 동작하고 있는 것이 있습니다.mounted훅이 시험 불합격의 원인이 되고 있습니다.나는 내가 필요로 하지 않는 방법들을 조롱할 수 있었다.하지만, 저는 이 문제를 조롱할 방법이 없을까 궁금했습니다.mounted훅을 꽂다.

@/components/attendees List.표시하다

<template>
  <div>
    <span> This is a test </span> 
  </div>
</template>

JS

<script>
methods: {
    testMethod: function() {
        // Whatever is in here I have managed to mock it
    }
},

mounted: {
    this.testMethod();
}
</script>

Test.spec.js

import { mount, shallowMount } from '@vue/test-utils'
import test from '@/components/attendeesList.vue'

describe('mocks a method', () => {    
  test('is a Vue instance', () => {
  const wrapper = shallowMount(attendeesList, {
    testMethod:jest.fn(),
  })
  expect(wrapper.isVueInstance()).toBeTruthy()
})

현재의,vue-test-utils모킹 라이프 사이클 훅은 지원되지 않지만 에서 호출된 메서드는 모킹할있습니다.mounted후크. 당신의 경우, 조롱하기 위해testMethod(), 사용방법:

const testMethod = jest.spyOn(HelloWorld.methods, 'testMethod')
const wrapper = shallowMount(HelloWorld)
expect(testMethod).toHaveBeenCalledWith("hello")

Vue 테스트 유틸리티에는 모의 메서드가 포함되어 있습니다.

const wrapper = shallowMount(attendeesList,{
   testMethod:jest.fn()
})

문제를 해결하는 가장 간단한 방법은 마운트된 후크의 코드를 메서드로 이동하고 위의 코드를 사용하여 후크에서 호출하는 것입니다.

언급URL : https://stackoverflow.com/questions/55746890/mock-mounted-hook-jest-testing-unit

반응형