java 자바 AWS API에 대해 작성된 코드를 테스트하는 방법




자바 jlabel (5)

Java에서 AWS S3까지 파일을 업로드하는 애플리케이션을 작성 중입니다. 파일은 하드 코드되지 않은 인수로 응용 프로그램에 제공됩니다. 파일이 실제로 S3에 업로드되도록 테스트를 작성하고 싶습니다. 테스트는 TDD 코드 앞에 작성됩니다. (나는 실제로 코드를 작성했지만 TDD 실습을 습관으로 삼고 싶다.)

이 일에 대해 내가 어떻게 정확하게 가겠습니까? 내가 JUnit을 가장 잘 알고있는 방식으로 사용할 것이다.

모든 도움을 미리 감사드립니다.


Op De Cirkel 대답은 ​​단위 테스트 범위에서 우수하지만 프레임 워크 지원을 작성하거나 테스트 중에 AWS S3 호출을 실행 해야하는 경우 AWS 호환 API를 제공하는 모든 서비스를 실행할 수 있습니다. OpenStack 은 그 중 하나이며 가상 머신에서 실행할 수 있습니다 ( DevStack 참조).

또는 AWS 호환 API를 제공하는 다양한 테스트 지향 도구 중에서 선택할 수 있습니다.

다음은 S3 서비스를 노출시키는 몇 가지 예입니다.

  • S3Ninja (실제로 자바로 작성)
  • FakeS3 (루비)
  • s3mock (자바 API를 포함한 스칼라)

나는 자바 프로그래머가 아니지만 mocking 을 들여다보고 싶을 것이다. MockService라는 SoapUI 도구가 AWS에서 제공하는 것과 같은 외부 서비스 조롱을 허용합니다.


실제 업로드 및이를 수행하는 테스트유닛 테스트가 아닌 통합 테스트의 일부입니다. 매우 얇은 클래스에서 S3 API를 래핑하면 비즈니스 클래스의 단위 테스트를 위해 해당 클래스를 조롱하고 통합 테스트를 위해 실제 구현을 사용하게됩니다.
직접 비즈니스 클래스가 AmazonS3 인터페이스 를 사용하도록 결정한 경우 단위 테스트를 위해 해당 클래스를 조롱해야합니다.

amazon s3의 작동 여부 및 방법에 대한 실제적인 실험적 테스트 (학습 및 검증)는 별도의 실험 설정에서 실제로 수행하는 것입니다.

추 신 : 비즈니스 클래스에서 AmazonS3 인터페이스를 직접 사용하지 말고 얇은 인터페이스로 랩핑하는 것을 권장하지 않으므로 '백엔드 스토리지'를 변경하기로 결정하면 쉽게 변경할 수 있습니다.



질문은 오랜 전에 대답했지만 다른 접근 방식에 대해 논평하고 싶습니다.

다른 Python 프로젝트에서 테스트하는 동안 이 라이브러리를 사용 하고 있습니다 . 백그라운드 서버를 설정하고 모든 AWS 호출을 모의 할 수 있기 때문에 자바 또는 스칼라와 같은 다른 언어로 개발 중이 라하더라도 매우 유용하다고 생각했습니다.

README의 끝에는 "독립형 서 v 모드"에 대한 추가 정보가 있습니다.





amazon-web-services