client
이라는 라이브러리를 사용하는 Service
이 있습니다.타사 라이브러리를 사용하는 서비스를 테스트하십시오.
내가로드하는 Client
클래스는 client
의 Service
개인 속성에 저장됩니다. 내 사양에 대한
,이
service = new Service(mockClient)
처럼 내 서비스에 mockClient
를 주입 할 수는 없지만 나도
service = new Service()
service.client = mockClient
이후 client
이 비공개 할 수 없습니다.
주입되지 않았고 조롱하고 싶은 타사 라이브러리를 사용하는 서비스를 테스트하는 올바른 방법은 무엇입니까?
편집 : 내 서비스는 여기에 적절한 연습이 타사 라이브러리가 주입되도록 코드를 리팩토링하는이
import { Client } from 'someLib';
Injectable()
export class Service {
private client: Client;
constructor() {
this.client = new Client();
}
덜 추상적 인 예를 들어 주시겠습니까? DI를 사용하여 모의를 제공 할 수없는 이유는 무엇입니까? – jonrsharpe
서비스 클래스로 내 게시물을 편집했습니다. 제 3 자 lib가 주입되지 않기 때문에 DI를 사용할 수 없습니다. – Lev
리팩터링을 통해 * 주입 *하면 쉽게 테스트 할 수 있습니다. – jonrsharpe