네트워크 통신을 담당하는 클래스가 있습니다. 그것을위한 단위 테스트를하고 싶습니다.네트워크 관련 클래스에 대한 단위 테스트 작성
여기서 내가 테스트하기 위해 서버를 구현해야하지만 그 자체 테스트가 필요합니다.
어떻게 이와 같은 등급의 테스트를 작성합니까?
네트워크 통신을 담당하는 클래스가 있습니다. 그것을위한 단위 테스트를하고 싶습니다.네트워크 관련 클래스에 대한 단위 테스트 작성
여기서 내가 테스트하기 위해 서버를 구현해야하지만 그 자체 테스트가 필요합니다.
어떻게 이와 같은 등급의 테스트를 작성합니까?
저수준 드라이버를 쓰지 않는 한, 클래스는 의심의 여지없이 다른 클래스에 따라 실제 통신을 수행합니다. 그럴 경우 쉽게 조롱받지 못하면 의존성 삽입을 사용하여 클래스 나 래퍼를 제공 할 수 있습니다. 테스트에서, 당신이 속한 클래스의 모의 버전 (또는 실제 클래스를 모의 할 수 없다면 래퍼)을 제공 할 것입니다. 당신이 제공하는 모의 (mock)에있는 당신의 방법에 의해 적절한 매개 변수를 가진 올바른 방법이 호출되는지 확인하십시오. 실제 의존성으로부터 모든 행동 범위를 다루었다고 스스로 만족할 수있는 단위 테스트가 충분한 지 확인하십시오. 이것은 단위 테스트에 충분합니다.
또한 통합 테스트가 필요합니다. 불행히도이를 수행하는 가장 쉬운 방법은 의사 소통을위한 모의 서버 (full-up mock server)를 개발하는 것입니다. 모의 서버는 인터페이스를 구현하기 만하면됩니다. 상대방의 실제 코드가 아닙니다. 모의 서버에서 예상되는 동작이 발생하도록 통합 테스트를 위해 서버를 설정할 수있는 몇 가지 추가 방법을 제공하십시오.
당신은 네트워크 통신에 대한 책임이 클래스를 - 테스트 단위 경우 다음 올바르게 통신을 수행하는 경우에만 테스트. 따라서 의사 소통을위한 가상 서버 (예 : 더미 서버)를 제공하십시오. EasyMock 및 jMockit과 같이 사용할 수있는 많은 모의 라이브러리가 있습니다. 실제 서버와의 실제 통신을 테스트하려면 통합 테스트입니다. 물론, 단위 테스트가 포함하는 것의 정확한 정의는 개발자마다 다릅니다.