다음과 같은 문제가 있습니다. 정말 잘못 디자인 된 API를 사용하고 있습니다. 옵션이 아님) 그리고 몇 가지 테스트를 작성하고 싶지만 클래스의 인스턴스에 의존합니다.이 클래스는 개인 생성자가있는 A
이라고합시다.수정할 수없는 클래스의 개인 생성자를 사용하여 객체를 모의합니다.
내가 그 A
을 조롱해야한다. 나는 원래의 행동에 전혀 신경 쓰지 않는다. 문제는 내가 원래의 클래스를 바꿀 수 없다는 것이다.
내 대안은 무엇입니까? 정적으로 타입이 지정되지 않은 루비가 나오기 때문에이 방법이 없다고 생각합니다. 그래서이 문제를 어떻게 해결할 지 잘 모릅니다.
그것은 내가 그것을 싱글 아니라 클래스에 대한 개인 생성자가 처음이 아니다 (아마도 그것은 내부의 개인 아니지만, 어떤 경우에 나는 그것에 접근이없는)
'A'는 변경할 수 없지만 'A'를 사용하는 코드는 바꿀 수 있습니까? 그렇다면, 그 안에있는 참조를'A'로 바꿀 수 있습니다. 어댑터는 노출 된 인터페이스를 가진 중개자입니다. –
이것은 유효한 제안입니다. 그러나 이것에 관해 나쁜 점이 하나 있습니다 : A는 80 가지 방법을 가지고 있습니다. 몇 가지 방법을 모의해볼 수 있다고 생각합니다.하지만 80 가지 방법 모두를 모의하는 것은 정말 지루할 것입니다. 나는 그것에 대해 아무 것도 할 수 없다고 생각한다. 나쁘게 설계된 API이다. –