OCMock을 처음 사용하고 질문이 있습니다.OCMock은 테스트중인 코드에서 조롱 된 인스턴스를 삽입하지 않고 자동으로 사용하도록 클래스를 모의 할 수 있습니까?
우리는 그 클래스의 인스턴스를 통해 메소드를 호출/객체 예를 들어
을 조롱 도착하는 클래스의 방법을 스텁 수 : Class_A가 아닌 정적 function_a을 가지고 있으며, Class_B는 내부적으로 object_o를 선언 function_b이있는 경우 Class_A의.
Class_A
{
- function_a
}
Class_B
{
- function_b
{
Obj_o of Class A
[Obj_o a];
}
}
는 지금, 나는 Class_B 및 테스트 function_b에 대한 단위 테스트를 작성하고자합니다.
Class_A 및 스텁 function_b의 모의 객체를 만든 다음 function_b 테스트를 실행하고 function_b가 스텁 된 일부 메커니즘이 있습니까?
function_b의 함수 정의를 변경하여 object_o를 매개 변수로 보내면 작동한다는 것을 알고 있습니다. 우리는 class_A의 객체 모의 객체를 만들고 function_b에 대한 스텁을 작성한 다음 조롱 된 객체에 대한 참조를 얻기 때문에 function_b에 해당 객체 모의 객체를 매개 변수로 보냅니다. 그러나 함수 정의를 변경하지 않고 그러한 함수를 테스트 할 수있는 가능성에 대해 확인하고 싶습니다. OCMock은 그러한 기능을 제공합니까? 를 들어, Class_A
에 클래스 메소드를 사용
가 Obj_o of Class A
function_b
에 만들려면 기존 방법의 정의를 변경하고자하지만, 기존의 코드를 변경 괜찮지하지 않는 경우
도움 주셔서 감사합니다. 싱글 톤 클래스에 대해서도 비슷한 케이스를 체크했다 : http://stackoverflow.com/questions/37549536/ocmock-automatically-use-mocked-instance-in-code-under-test?rq=1. 그러나 나는 조롱 된 객체를 반환하는 newInstance 메서드를 추가하지 않으면 불가능할지 여부를 명확히하고 싶습니다. 나는 Class_A와 Class_B와 같은 너무 많은 클래스를 가진 전체 프로젝트를 가지고 있고 Class_A에 새로운 newInstance 메소드를 추가하고 Class_A와 Class_B 각각에 대해 Class_B에서 객체 선언을 변경하는 것과 같은 모든 것을 리팩토링해야하므로 같은 질문을하고있다. –