2010-04-09 4 views
2

웹 API와 인터페이스해야합니다. 게시 요청을 받아들이고 XML 데이터를 반환합니다. 클라이언트 측에서는 많은 비동기 처리가 필요하므로, 실패 할 경우 주 클라이언트 프로세스를 방해하지 않고 여러 번 재 시도 할 수 있습니다. 코드를 잘 테스트해야합니다. 내가 로컬로 테스트하는 API의 mock 버전을 만들고이를 연결하는 단위 테스트를 작성합니다. 이것은 테스트를위한 좋은 접근 방법입니까? 서버에 대한 연결을 가짜로 만들고 실제로 연결하지 않는 클라이언트 API 버전을 사용해야합니까? (모의 데이터 만 반환)테스트 가능한 API 클라이언트를 설계하는 데 도움이됩니다.

요청/응답 클래스를위한 최상의 아키텍처를 알아 내려고합니다. 응답을 클래스로 직렬화해야합니까? XML 필드를 클래스 속성에 매핑하는 일종의 매핑 파일이 있어야합니까? 나는 각 요청에 대해 인터페이스를 따르는 요청 클래스를 갖는 것에 대해 생각하고 있었다. 그런 다음 ApiRequestSender 클래스와 요청을 보내고 응답을 얻는 AsyncApiRequestSender 클래스를 가질 수 있습니다. 내가 혼란스러워하는 유일한 점은 4가 있기 때문에 정확히 입력 된 응답을 얻는 방법입니다.

미리 감사드립니다. 나는 약간의 해답을 얻기를 바라고 있습니다. 그러나 일반적으로 아키텍처 기반 질문을 할 때 응답이 없습니다. <

답변

1

저는 API를 조롱하는 것이 좋습니다. 목적은 API가 연결할 수 있는지 여부가 아니라 응용 프로그램의 클라이언트 측을 테스트하는 것입니다. 테스트에 대한 부가 가치가 없습니다.

휠을 다시 발명하지 마십시오. 자체 매핑 메커니즘을 쓰는 대신 직렬화를 사용하십시오.

1

확실히 좋은 방법입니다.

  • 실례로 실제 서비스를받지 않아도 많은 사례를 얻을 수 있습니다. 당신이
  • 일반적으로 포장 얻을 것이다 응답의 상태에 대해 걱정하지 & 수업에 대해 코딩 할 수 있도록 코드에 대한 자신의 클래스로 API 입력/출력을 포장 할 수있는 경우
  • 가능하다면, 나는 확인 IService 또는 IRepository 구현에 그것을 만들 것입니다 것은 & 추상적 웹 API &에서 코드가 재하지 않는, 테스트 & @Gerrie가 언급 한 바와 같이 응용 프로그램
  • 에 대한 실제 API에 대한 귀하의 모의 구현을 주입하는 DI 컨테이너를 사용 그것이 정사각형이 아닌 한 바퀴를 발명해라. :)

HTH

관련 문제