Socket
에 의존하는 클래스는 코드를 테스트 할 수 있도록하기 위해 소켓의 추상화 (예 : 읽기 및 쓰기와 같은 사용 방법을 제공하는 간단한 인터페이스)에 의존해야합니다. 응용 프로그램에서는 실제 Socket
클래스의 래퍼를 사용하지만 유닛 테스트에서는 mock을 사용할 수 있습니다 (이 경우 JMock을 확인하십시오).
고려 :
public interface ISocket
{
byte[] read();
int write(byte[] content);
}
public class SocketWrapper : ISocket
{
// read and write methods simply delegate work to real socket
}
public class ClassToTest
{
private ISocket socket;
public ClassToTest(ISocket socket)
{
this.socket = socket;
}
}
지금 당신의 단위 테스트 당신이
ISocket
의 모형을 만들 수
ClassToTest
생성자에 전달합니다. 이렇게하면 단위 테스트가 종속성과 분리됩니다. 그 인터페이스를 구현하는 클래스를 생성 한 후
public interface IClient{
bool connect(...);
bool disconnect(...);
bool sendData(...);
}
:
예, 소켓을 조롱하십시오. –
메릴랜드, 어떻게 할 수 있습니까? 링크를 게시 하시겠습니까? – Plastech