어떻게 파일을 파싱 할 수있는 단위 테스트를 할 수 있을지 모르겠다 ... 20-1000 개의 레코드가있는 25 개의 열이있는 파일이 있다고 가정 해 봅시다. ? 이 함수는 파일을 매개 변수로 문자열로 가져오고 파일 내용이있는 DataTable을 반환합니다. ...단위 테스트 파일 파싱 루틴?
제가 생각할 수있는 최선의 방법은 4 개의 레코드 파일을 구문 분석하고 위쪽 및 아래쪽 오른쪽 모서리 만 확인하는 것입니다. ... 예. 2 상위 레코드의 처음 몇 필드와 2 맨 아래 레코드의 마지막 몇 필드 ... 파일의 모든 단일 필드에 대해 지루한 손 유형의 어설 션문을 사용하는 것을 상상할 수 없습니다. 그리고 하나의 레코드와 모든 필드를 수행하는 것은 여러 레코드 파일이나 예기치 않은 데이터의 시나리오를 설명하지 않기 때문에 약한 것처럼 보입니다.
그 당시로서는 '충분히 좋았던'것처럼 보였습니다. 그러나 이제는 10 개의 다른 소스에서 오는 다양한 PDF 파일을 구문 분석하는 새 프로젝트를 진행하고 있습니다. 각 소스는 4-6 가지 형식 그들의 파일에 대해서는 약 40-60 파싱 루틴이 필요합니다. 우리는 궁극적으로 향후 25 개의 추가 소스를 완전히 자동화 할 수 있습니다. 우리는 PDF를 가져 와서 타사 도구를 사용하여 Excel로 변환합니다. 그런 다음 출력의 패턴을 분석하고 분석하여 도구의 API를 호출하는 코드를 작성하고 Excel 파일을 추출하여 파싱합니다. 쓰레기, 다른 곳에서 데이터를 정렬하고 청소하는 등의 작업을 할 수 있습니다.
어떻게 이런 식으로 단위 테스트를 할 수 있습니까?
이것은 좋은 아이디어입니다. XML에 직렬화/비 직렬화를 생각하지 않았습니다. 그렇다면 전체 파일에서 모든 셀에 대해 하나의 Assert() 호출이 필요하지 않습니다. 단지 하나의 assert (또는 필요한 경우 루프)를 사용하여 일치하는지 확인하십시오 – dferraro
하나의 'catch'가 있습니다. 첫 번째 예제에서는 .NET 응용 프로그램에 대해 이야기했습니다. 그러나 40 개의 '스크러빙 스크립트'가 포함 된이 새로운 프로젝트는 VBA로 작성되었습니다 .... 입력은 Excel 스프레드 시트이며 출력은 Excel 스프레드 시트입니다 ... 어떻게이 항목을 일련 번호로 지정할 수 있습니까? 파일 전체에 체크섬을 적용 할 수 있습니까? – dferraro
링크가 죽었습니다 ... :( – Shanimal