레거시 코드 기반의 mock생성은 쉽지 않다. 왜냐하면 mock과 같은 interface를 제공하는 모듈(or 함수)가 아미 존재하기 때문이다.(mock이 interface를 다르게 가져갈 수는 없다고 생각한다.)
이 경우 개개의 함수의 interaction을 adaptor module을 사용하여 하게 될 경우 adaptor는 test mode일 경우 mock으로 patch할 수 있는 기능을 제공할 수 있을 듯 하다. 그러나 단점은 모든 interaction에 adaptor를 사용해야 한다는 것이다. 우선 adaptor의 사용을 아주 간단하게 하는 방법이 있을 것이다. 예를 들면 calledB를 호출하기 위해서 _(calledB(param1, param2...))와 같이 사용할 수 있을 듯 하다.
위의 방법은 개발과 테스트가 병행할 경우이다. 만일 레거시 기반으로 unit test case를 작성한다고 가정을 해 본다. 이 경우에는 interaction부분을 수정하여야 할 듯 하다. 그러나 test module을 수정하는 것은 옳지 않다. 그래서 최소한의 영향을 주는 방법으로 pre-process(전처리)기능을 사용하는 것을 생각해본다. 그러나 이경우에는 #define할 상수들이 너무 많아지거나 혹은 일괄적으로 mock생성 모드로 들어가거나 나오게 되기에 역시 문제가 있다.
==>
????