2017-12-23 27 views
1

csv 파일에서 필요한 입력 데이터를 읽는 테스트를 여러 번 실행하려고합니다. 파일의 각 줄마다 테스트를 실행하고 싶습니다.CSV 파일에서 Spring 읽기 데이터로 테스트 실행

수동으로 처리 하겠지만 스프링 배치를 발견했습니다. 저는 스프링 배치를 처음 접했지만 다음과 같이 생각했습니다 :

  • 명령 줄 러너를 구현하는 스프링 부팅 응용 프로그램을 만듭니다.
  • run 메서드에서 스프링 일괄 작업을 실행하십시오.
  • 이 작업은 csv 파일의 데이터를 한 줄씩 읽고 각 줄마다 현재 줄의 데이터에 대해 @Test 메서드를 실행합니다.

이 방법이 좋습니까? 그것을 할 수있는 더 좋은 방법이 있습니까? 어떻게 할 수 있는지에 대한 예제 코드를 제공 할 수 있습니까?

감사합니다.

답변

0

제 생각에는 단위 테스트에 불필요한 복잡성을 추가하려고 시도하기 때문에 OK 방법이 아닙니다. & 작업, 작업 메타 데이터, 메모리 데이터베이스 등의 개념도 그림으로 나타납니다.

또한 스프링 배치는 파일 행을 읽는 것이 아니라 스프링 배치와 함께 작성자도 필수입니다.

이 방법을 사용하면 제어가 취소됩니다. 테스트는 모든 것을 제어하고 드라이버가되어야하지만이 방법을 사용하면 Spring Batch 작업이 테스트 드라이버가됩니다.

당신은 단순히 (실제 테스트 로직이 각 라인 &이 개인 방법) Before 또는 BeforeClass 방법으로 파일의 라인을 읽고 루프에서 개인 시험 방법을 호출 마스터 @Test 방법이 있어야합니다. 루프가 성공하면 테스트가 성공합니다.

프레임 워크가 자동으로 해당 메소드를 호출해야하기 때문에 테스트 메소드에 @Test으로 주석을 추가해야합니다. 그것을 수동으로 호출하면 그 목적을 상실 할 수 있습니다.

귀하의 요구 사항을 오해 한 경우 알려주십시오.

+0

나는 스프링 바치를 사용하는 것이 옳다고 생각한다. 너무 복잡하다. 수동으로하는 것이 더 낫습니다. 그 봄 배치는 오랜 오프라인 과정을위한 것입니다. 내가하고 싶은 일은 당신이하는 말은 다소 다르지만 '@Test'방법은 파일의 모든 줄마다 호출되는 방법입니다. 외부 메서드는 파일을 한 줄씩 읽고 현재 줄의 데이터에 대해 '@Test'메서드를 호출하는 것일 수 있습니다. – choquero70

+0

코드에서 @Test 메서드를 호출 할 때 동의하지 않으므로 응답을 업데이트했습니다. –

+0

죄송합니다. 혼란 스럽습니다. 내 응용 프로그램은 다른 하나의 시험입니다. 그래서 어쩌면 내가 '@ 테스트'를 사용할 필요가 없다고 생각하지만 테스트하고 싶은 다른 앱의 메소드를 호출하면됩니다. – choquero70