programing

저는 Vue 3에서 Vuex에서 Pinia로 전환하고 있으며 현재 유닛 테스트에 실패하고 있습니다.사용자 지정 모의 작업을 만들 수 없는 것 같습니다.

jooyons 2023. 7. 9. 11:06
반응형

저는 Vue 3에서 Vuex에서 Pinia로 전환하고 있으며 현재 유닛 테스트에 실패하고 있습니다.사용자 지정 모의 작업을 만들 수 없는 것 같습니다.

다음은 앱의 암호 재설정 페이지에 있는 간단한 예입니다. 서버 측을 우회하여 클릭 시 암호를 재설정하여 성공적으로 테스트를 작성하고 다음과 같은 사용자 지정 테스트 저장소를 사용하고 싶습니다.

const customStore = {
  state() {
    return {
      Authentication: {
        passwordResetSuccess: false,
      },
    };
  },
  mutations: {
    SET_RESET_PASSWORD_SUCCESS(state) {
      state.Authentication.passwordResetSuccess = true;
    },
  },
  actions: {
    forgotPasswordResetPassword() {
      this.commit('SET_RESET_PASSWORD_SUCCESS');
    },
  },
};

그러면 각() 전에 사용자 지정 스토어를 포함할 수 있었고 잘 작동했습니다.제가 생각할 수 있는 모든 것을 피니아와 함께 작동하도록 노력했지만, 효과가 없는 것 같습니다.

저는 vue/test-utils와 함께 농담을 사용하고 있습니다.

저는 기본적으로 테스트 피니아 스토어를 만들려고 했는데, 어떻게 구성 요소가 커스텀 테스트 스토어를 사용하도록 할 수 있는지 모르겠습니다.

const useCustomStore = defineStore('AuthenticationStore', {
  state: () => ({
    passwordResetSuccess: false,
  }),
  actions: {
    forgotPasswordResetPassword() {
      this.passwordResetSuccess = true;
    },
  },
});


const authenticationStore = useCustomStore();

활성 pinia 인스턴스를 찾을 수 없기 때문에 플러그인으로 직접 추가할 수 없습니다.

저는 이 가이드를 통해 보았습니다: https://pinia.vuejs.org/cookbook/testing.html#unit-testing-a-store

그리고 여기에 설명된 것처럼 저는 또한 농담 모의를 사용해 보았습니다: https://stackoverflow.com/a/71407557/4697639

하지만 여전히 실패했습니다.

구성 요소에서 사용할 수 있는 사용자 지정 저장소를 만들고 실제로 사용자 지정 작업을 수행하는 방법을 알고 있는 사람이 있다면 이 문제를 해결하는 데 도움이 필요합니다.고마워!!

타오는 댓글에서 이것이 유닛 테스트를 하는 좋은 방법이 아니라고 언급했습니다.이것을 해결된 것으로 표시하고 테스트 방법을 수정하겠습니다.

언급URL : https://stackoverflow.com/questions/74482359/im-switching-from-vuex-to-pinia-in-vue-3-and-my-unit-tests-are-now-failing-i-c

반응형