OutputStream에 직접 출력하는 Java 파싱 XML 클래스에 대해 junit 테스트를 작성하려고합니다. 예를 들어 xmlWriter.writeString("foo");
은 <aTag>foo</aTag>
과 같은 것을 생성하여 XmlWriter 인스턴스 내부에있는 outputstream에 기록합니다. 문제는이 동작을 테스트하는 방법입니다. 한 가지 해결책은 당연히 OutputStream이 FileOutputStream이되도록 한 다음 작성된 파일을 열어 결과를 읽는 것입니다.하지만 그다지 우아하지는 않습니다.Java OutputStream에 쓰여진 내용을 테스트하십시오.
21
A
답변
23
ByteArrayOutputStream을 사용하고 toByteArray()을 사용하여 데이터를 가져옵니다. 이것은 을 어떻게 테스트합니까?은 스트림에 씁니다 (한 번에 한 바이트 또는 큰 버퍼로). 일반적으로 어쨌든 그것에 대해 신경 쓰지 않아야합니다.
3
Writer를 XmlWriter에 전달할 수 있으면 StringWriter
을 전달합니다. StringWriter
의 내용은 toString()
을 사용하여 쿼리 할 수 있습니다.
OutputStream
을 전달해야한다면 ByteArrayOutputStream
을 전달하고 toString()
을 호출하여 내용을 문자열로 가져올 수 있습니다.
public void testSomething()
{
Writer sw = new StringWriter();
XmlWriter xw = new XmlWriter(sw);
...
xw.writeString("foo");
...
assertEquals("...<aTag>foo</aTag>...", sw.toString());
}
2
그것은 간단합니다 : 같은
그럼 당신은 뭔가를 코딩 할 수 있습니다. @JonSkeet이 말한대로 :
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// pass the baos to be writed with "value", for this example
byte[] byteArray = baos.toByteArray();
Assert.assertEquals("value", new String(byteArray));
관련 문제
- 1. ByteBuffer의 내용을 OutputStream에 저장하는 방법은 무엇입니까?
- 2. JAXB API로 Java 소스 파일을 OutputStream에 직접 생성
- 3. java 소스 (.java 파일)를 추가하여 Maven의 jar 파일을 테스트하십시오.
- 4. Jaxb가 OutputStream에 직접 XML을 생성합니다.
- 5. Java 라이브러리 소스 코드가 이상하게 들여 쓰여진 이유는 무엇입니까?
- 6. C로 쓰여진 라이브러리가있는 스마트 포인터
- 7. C# 값을 쓰여진 값으로 환산
- 8. 외국어로 쓰여진 응용 프로그램으로 작업하기
- 9. OutputStream 파일 내용을 삭제하십시오. JAVA
- 10. 여러 EditText가 비어 있는지 테스트하십시오.
- 11. 하나의 outputStream에 여러 개의 'if'문이 있습니다.
- 12. JAXB writeTo 메서드 내에서 OutputStream에 쓰기
- 13. 그것을 닫지 않고 소켓 outputStream에 쓰기
- 14. 다른 테스트 중에 생성 된 Java 코드를 테스트하십시오.
- 15. ASP.NET이없는 멤버쉽 공급자를 테스트하십시오.
- 16. 의도가 가능한지 테스트하십시오.
- 17. Mongoose Node.JS 앱을 테스트하십시오.
- 18. 내 MVC2 컨트롤러를 테스트하십시오
- 19. 저속 네트워크에서 webapp을 테스트하십시오.
- 20. 원격 프록시가 유효한지 테스트하십시오.
- 21. ICommand가 실행되었는지 테스트하십시오.
- 22. JMS 대기열에 메시지를 테스트하십시오.
- 23. android 에뮬레이터의 localhost를 테스트하십시오.
- 24. int 1 바이트를 사용하지 않고 OutputStream에 문자열 작성하기
- 25. 하나의 컴퓨터에서 다수의 웹 서비스를 테스트하십시오.
- 26. 문자열에 쓰여진 XML 파일에서 태그를 제거 하시겠습니까?
- 27. 리눅스 커널 - 마지막으로 쓰여진 메모리 블록 얻기
- 28. 텍스트 파일에서 값을 읽도록 쓰여진 스크립트가 없습니다.
- 29. 테이블에 들여 쓰여진 텍스트 들여 쓰기
- 30. 장치에 쓰여진 파일을 찾을 수 없습니다.