반응형
vuex 가입자의 메서드를 어떻게 감시합니까?
Vue Component의 created()에서 Vuex 저장소의 Mutation에 가입한 가입자가 있습니다.가입자가 트리거될 때 호출되는 메서드를 염탐하려고 했습니다.이것이 저의 첫 번째 직관적인 시도입니다.
//Vue-Component
created(){
this.$store.subscribe((mutation) => {
if (mutation.type === "mutationname") {
this.methodToBeSpiedOn();
}
});
}
//jest
import Component from "...";
...
const setSelectedCompanySpy = jest.spyOn(
Component.methods,
"methodToBeSpiedOn"
);
componentwrapper.vm.$store.commit("mutationname")
expect(methodToBeSpiedOn).toBeCalled();
이제 저는, 아마도 반응성 때문일 것이고 테스트는 가입자를 트리거하기 위해 더 많은 시간이 필요하다고 생각했습니다.
그래서 setTimeout()을 사용해 보았습니다.
setTimeout(() => {
expect(methodToBeSpiedOn).toBeCalled();
done();
}, 10000);
하지만 이것 또한 효과가 없습니다.
그래서 제 질문은:Vuex 가입자에서 호출되는 메서드를 어떻게 감시합니까?
아니면 제 접근 방식이 완전히 잘못된 것인가요, 구독자를 이렇게 테스트하면 안 되나요?
Component.methods
sypyOn이 작동하지 않을 수 있습니다. 왜냐하면vm
는 구성 요소의 메서드가 할당된 기본 개체입니다.
사용vm
예를 들어 다음과 같습니다.
const setSelectedCompanySpy = jest.spyOn(
componentwrapper.vm,
"methodToBeSpiedOn"
);
expect(setSelectedCompanySpy).toBeCalled();
언급URL : https://stackoverflow.com/questions/67314026/how-do-i-spy-on-methods-in-a-vuex-subscriber
반응형
'programing' 카테고리의 다른 글
github에서 "실제" 커밋 날짜/시간 참조(시간/일) (0) | 2023.07.07 |
---|---|
SQL Server에서 두 날짜 사이의 모든 날짜 가져오기 (0) | 2023.07.07 |
Firestore 하나의 필드만 업데이트 (0) | 2023.07.02 |
Electron을 사용할 때 Angular 2의 기본 href를 어떻게 구성해야 합니까? (0) | 2023.07.02 |
TypeScript에서 입력된 개체 리터럴을 지정하려면 어떻게 해야 합니까? (0) | 2023.07.02 |