아래 코드를 단위 테스트하고 싶습니다. 나는 MSTest로 일해 왔고 Microsoft Moles과 RhinoMocks을 배우려고했다. 그러나 나는 그들 중 누구도 나를 도울 수는 없었다. 나는 코드를 과도하게 테스트 할 수있는 인터페이스를 사용하도록 코드를 변경할 수 있지만 TcpClient, NetworkStream, StreamWriter 및 StreamReader를 캡슐화하는 인터페이스와 구현을 코딩해야합니다.테스트 네트워크 연결을 어떻게 단위로합니까?
나는 이것에 대한 통합 테스트를 이미 작성했으며 두더지를 능숙하게 사용하는 사람은 코드를 변경하지 않고도 단위 테스트를 매우 쉽게 할 수 있다고 생각한다.
using (TcpClient tcpClient = new TcpClient(hostName, port))
using (NetworkStream stream = tcpClient.GetStream())
using (StreamWriter writer = new StreamWriter(stream))
using (StreamReader reader = new StreamReader(stream))
{
writer.AutoFlush = true;
writer.Write(message);
return reader.ReadLine();
}
"단위 테스트"를 시도해 볼 가치가없는 것들이 있습니다. 이 메소드가 사용하는 피스를 조롱했다면 속성 설정자, 메서드 호출을'writer '로, 메소드 호출을'reader'로 체크 할 수 있습니다. 여기에는 많은 행동이 없으며 테스트하기에별로 흥미롭지 않습니다. 이제는이 메소드를 사용하는 클래스를 테스트하는 것이 흥미로울 것이므로이 클래스가 인터페이스를 구현하고 호출하는 컴포넌트를 테스트 할 것입니다. –
@ MerlynMorgan-Graham 동의 함 –