통합 테스트를 작성하여 URL에서 파일이 올바르게 다운로드되었는지 확인하려고합니다. 파일을 바이트 []로 가져올 것으로 예상하기 때문에 이것을 테스트하는 방법을 모르지만 비교할 이미지가 있는지 잘 모르겠습니다. 파일을 수동으로 다운로드 한 다음 바이트로 변환하여 결과를 가져 와서 예상 값으로 코드에 붙여 넣은 결과와 비교합니다. 당신이 더 좋은 생각이 있다면 나는 그것을 듣게되어 기쁠 것입니다.이미지 다운로드 자바 통합 테스트
감사 :
통합 테스트를 작성하여 URL에서 파일이 올바르게 다운로드되었는지 확인하려고합니다. 파일을 바이트 []로 가져올 것으로 예상하기 때문에 이것을 테스트하는 방법을 모르지만 비교할 이미지가 있는지 잘 모르겠습니다. 파일을 수동으로 다운로드 한 다음 바이트로 변환하여 결과를 가져 와서 예상 값으로 코드에 붙여 넣은 결과와 비교합니다. 당신이 더 좋은 생각이 있다면 나는 그것을 듣게되어 기쁠 것입니다.이미지 다운로드 자바 통합 테스트
감사 :
이미지의 해시 값 비교가 도움이 될 것입니다.
MD5 또는 SHA-1과 같은 해시 알고리즘을 사용할 수 있습니다. 파일이 작 으면 MD5가 좋습니다. 많은 수의 파일 비교를 위해 SHA-1은 충돌이 줄어들 기 때문에 유용 할 것입니다.
당신이 사용하고 있기 때문에과
바이트의 파일을 얻을 것으로 기대 [] 당신은을 사용하는 동안 다이제스트를 계산할 수 있도록 입력 스트림 장식,java.security.DigestInputStream
또는java.security.MessageDigest
가있다
입력 스트림.
import java.io.*;
import java.security.MessageDigest;
public class MD5Checksum {
public static byte[] createChecksum(String filename) throws Exception {
InputStream fis = new FileInputStream(filename);
byte[] buffer = new byte[1024];
MessageDigest complete = MessageDigest.getInstance("MD5");
int numRead;
do {
numRead = fis.read(buffer);
if (numRead > 0) {
complete.update(buffer, 0, numRead);
}
} while (numRead != -1);
fis.close();
return complete.digest();
}
public static String getMD5Checksum(String filename) throws Exception {
byte[] b = createChecksum(filename);
String result = "";
for (int i=0; i < b.length; i++) {
result += Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1);
}
return result;
}
public static void main(String args[]) {
try {
System.out.println(getMD5Checksum("apache-tomcat-5.5.17.exe"));
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Here 다른 좋은 코드 스 니펫을 찾을 수 있습니다.
안녕하세요. 네 대답이 흥미 롭다. 웹 응용 프로그램이 다운로드 할 파일을 생성하는 비슷한 시나리오에 직면하고 있습니다. 당신의 대답은 그 시나리오에서도 유효합니까? 내가 [질문] (https://stackoverflow.com/questions/47167826/integration-tests-who-download-files)을 게시합니다. TIA. – Francesco