를 호출하지에도 불구하고 단위 테스트에서 실행되는 m 결코을 호출하면 NgLifecycleLog()
메서드가 호출되고 호출됩니다. 이는 console
문 대신 LoggerFactory
을 사용하려고하기 때문에 문제입니다. 단위 테스트를 실행하면 NgLifecycleLog()
에 대한 호출이 이루어 지므로 LoggerFactory
의 인스턴스가 예상치 못한 경우 생성됩니다.수출 기능은 내가 다음과 같은 클래스가 결코
왜 이것이 호출됩니까? 나는이 테스트가 실행되고있는 유일한 방법인지 확인하기 위해 테스트에서 fdescribe
을 시도했다.
:
lifecycleLogger
가 실제로 사용되는이 장소에 클래스 장식에 호출되는 곳에서 이동해야합니다 이름이 불려서 전화 했어. 뭔가 꾸미기 위해이 데코레이터를 만들었지, 그렇지? 사용하지 않는다면 왜 그곳에 있습니까? 코드베이스에서 삭제하면 호출 된 곳을 볼 수 있습니다. – estus예, 부품에서 사용합니다. 하지만 구성 요소를 테스트하지는 않습니다. 유닛 테스트를 실행하고'fdescribe'를하면 컴포넌트는 결코 그 데코레이터를 사용할 기회를 갖지 않아야합니다. 단위 테스트를 실행하고 그 단위 테스트가 ** 그것을 부르지 않는다면 왜 호출 될까요? – Nxt3
장식품이 어떻게 작동하는지 오해 한 것 같습니다. 클래스 데코레이터는 데코 레이팅 된 클래스가 정의 될 때 한 번 실행됩니다. 테스트 클래스에 꾸며진 클래스가 포함되면 데코레이터 함수가 호출됩니다. 이것이 문제를 만든다면 데코레이터가 잘못된 방향으로 설계되었습니다. 나는 당신의 실제 코드뿐만 아니라 console.error를 반영하도록 질문을 업데이트 할 것을 제안합니다. – estus