Estoy a punto de escribir pruebas junit para una clase Java de análisis XML que se envía directamente a un OutputStream. Por ejemplo, xmlWriter.writeString("foo");
produciría algo como <aTag>foo</aTag>
que se escribirá en la salida de salida que se encuentra dentro de la instancia de XmlWriter. La pregunta es cómo probar este comportamiento. Una solución sería, por supuesto, dejar que OutputStream sea un FileOutputStream y luego leer los resultados abriendo el archivo escrito, pero no es muy elegante.Comprobando lo que está escrito en Java OutputStream
21
A
Respuesta
23
Utilice ByteArrayOutputStream y luego obtenga los datos de eso usando toByteArray(). Esto no probará cómo escribe en la secuencia (un byte a la vez o como un gran búfer) pero generalmente no debería preocuparse por eso de todos modos.
3
Si puede pasar un escritor a XmlWriter, lo pasaría a StringWriter
. Puede consultar el contenido de StringWriter
usando toString()
en él.
Si tiene que pasar un OutputStream
, puede pasar un ByteArrayOutputStream
y también puede llamar al toString()
para obtener su contenido como una Cadena.
A continuación, puede codificar algo como:
public void testSomething()
{
Writer sw = new StringWriter();
XmlWriter xw = new XmlWriter(sw);
...
xw.writeString("foo");
...
assertEquals("...<aTag>foo</aTag>...", sw.toString());
}
2
Es muy sencillo. Como @JonSkeet dijo:
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));
Cuestiones relacionadas
- 1. Comprobando si el archivo está completamente escrito
- 2. Java OutputStream Omitir (desplazamiento)
- 3. Java: Comprobando si la PC está inactiva
- 4. Comprobando si una fuente está monoespaciada en Java
- 5. ¿Hay un OutputStream nulo en Java?
- 6. ¿Convierte un StreamWriter a OutputStream en java?
- 7. ¿Por qué el suministro de stdin al subproceso.Popen hace que cambie lo que está escrito en stdout?
- 8. ¿En qué idioma está escrito .NET Framework?
- 9. ¿Por qué el tipo Java "String" está escrito en mayúscula mientras que "int" no?
- 10. lo que innerHTML está haciendo en javascript?
- 11. en qué idioma está escrito Asana?
- 12. ¿Qué está escrito estáticamente en RPython?
- 13. ¿Visual Studio está escrito en winforms?
- 14. Alguien sabe qué tumblr está escrito en
- 15. Comprobando si javascript está habilitado
- 16. Sockets de Java: DataOutputStream o OutputStream?
- 17. Crear Java-Zip-Archive desde OutputStream existente
- 18. ¿Generador de instalador escrito en Java?
- 19. ¿Está comprobando que la explicidad verdadera es mala por diseño?
- 20. está comprobando "HTTP_STATUS/100! = 2" mejor que "HTTP_STATUS! = 200"
- 21. ¿Hay un OutputStream en el bloqueo de Java? (Sockets)
- 22. ¿Hay una forma equivalente C# para Java InputStream y OutputStream?
- 23. Cómo averiguar lo que está interceptando '' method_missing
- 24. Vea lo que está haciendo sp_execute
- 25. ¿Para qué está escrito iTunes para Windows?
- 26. Analizador de Java escrito en JavaScript
- 27. lo que está encabezado X-Cascade
- 28. Leyendo datos de un Archivo mientras está siendo escrito en
- 29. ¿La forma correcta de cerrar un OutputStream en Java?
- 30. Comprobando si la cookie está configurada