Object.ToString() 메서드와 NUnit

굉장히 하찮아보이는 메서드 중에 하나인 .ToString() 메서드는, 사실 NUnit에서 굉장히 중요한 역할을 해냅니다. 바로 NUnit GUI를 좀 더 편리하게 쓰는 비법이 여기에 숨어 있습니다. (Java에서도 비슷한 일을 해낼 수 있을 것입니다.)

NUnit GUI는 어셈블리 코드를 호스팅하는 일반 프로세스이기때문에 표준 출력의 내용을 가져올 수 있습니다. 이 점을 효과적으로 활용하려면 Console.WriteLine / Console.Write 메서드의 특성을 잘 알아야 하는데, 지금 말한 두 개의 메서드는 Object 형식을 받으면 자동으로 ToString() 메서드를 호출하여 출력할 내용을 결정합니다.

ToString() 메서드를 구현하면서 사용하면 효과적인 클래스도 있습니다. 바로 StringBuilder 클래스입니다. 표현해야 할 정보가 많아서 문자열이 길어진다고 생각되면 그저 String을 더하기만 하지 말고 StringBuilder를 이용하는 것이 좋습니다. 특히, 이진 데이터의 표현이 필요하다면 StringBuilder는 필수입니다!

만약 이진 데이터를 NUnit GUI를 통하여 출력하길 원한다면 ToString() 메서드를 잘 구현하도록 합니다. 이진 데이터를 프레젠테이션하는 방법은 Programming Windows with C# (Charles Petzold 저, Microsoft Press)의 OLE 관련 Chapter에 서술되어있으며 Code Project나 Code Guru에서 찾으셔도 좋습니다.

ToString() 메서드의 구현이 잘 되었다면 테스트 루틴 안에서 Console.WriteLine 이나 Console.Write 메서드를 호출하여 테스트도중 변경되는 변수의 내용이나 데이터, 객체의 내용을 조사할 수 있게됩니다.

보너스 하나 더: ToString() 메서드를 잘 구현해두면 디버거에서도 그 역할을 톡톡히 다 해냅니다. 디버거는 요약 정보를 표현하기 위하여 마찬가지로 ToString() 메서드를 이용합니다. 🙂

댓글 남기기