.net - office - Pruebas automatizadas SDK de OpenXML
openxml sdk create excel document (3)
No, no he hecho pruebas unitarias de la generación de documentos de MS Word, pero, como dice Ingó Vals, no debería ser diferente de cualquier otra forma de prueba unitaria.
1) [Opcional: para garantizar que comprende el uso correcto del SDK según sus necesidades]. Descubra cómo su aplicación debe conducir el SDK. Escriba algunos scripts de prueba que imiten la funcionalidad prevista y asegúrese de que los documentos de Word que generan satisfacen sus expectativas.
2) Cree una interfaz (o interfaces) que contenga métodos que correspondan a la funcionalidad que necesita para la generación de su documentación. Nota: la interfaz no necesita ofrecer la funcionalidad completa del SDK OpenXML, solo la funcionalidad que necesita para su aplicación.
3) Cree una implementación concreta de su interfaz, que reenvía las llamadas al SDK de OpenXML
4) Utilice la interfaz que creó en su aplicación para realizar la generación de documentos.
5) Use NUnit y NMock (o similar) para escribir pruebas unitarias que manejen la capa de generación de su aplicación. Estas pruebas deben usar una interfaz simulada, en lugar de una instancia de la implementación concreta. Ahora puede afirmar en sus pruebas que su capa de generación se comporta como espera.
Estoy implementando la generación de ms word document usando controles de contenido y OpenXML SDK. Me gustaría tener algunas pruebas automatizadas para ese código (pruebas unitarias o algunas pruebas de automatización fáciles de UI).
¿Alguien tiene experiencia en probar la generación de documentos de MS Word? ¿Cuáles son las posibles opciones?
¡Gracias por adelantado!
Advertencia sobre OpenXml Sdk 2.0 y código válido ...
He generado documentos de OpenXml Powerpoints que validan el uso de herramientas XML SDK 2.0 y funciona en Office 2007 en mi PC, pero al abrir el documento en otra máquina usando Office Powerpoint 2007 se queja y dice que el formato no es válido
XML Sdk 2.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
De hecho, estoy haciendo algo similar con OpenXML SDK para hojas de cálculo y, de hecho, solo escribo el código de la API OpenXML que abre el archivo de una transmisión con el fin de realizar pruebas. Las pruebas unitarias realmente no le dicen suficiente ya que necesita saber si es un archivo válido.
// There should be a sheet for every team
[TestMethod]
[HostType("Moles")]
public void CaseExportTeamSheetsTest()
{
IRepository<ServiceTbl, ServiceTbl> ServiceRepository;
CaseController target;
BuildCaseControllerMoledCases(out ServiceRepository, out target);
FileStreamResult actual = target.Export(); using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(actual.FileStream, false))
{
var services = ServiceRepository.All;
foreach (var item in services)
{
// get a worksheet foreach service
var sheets = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == item.ServiceName);
Assert.IsTrue(sheets.Count() > 0);
}
}
actual.FileStream.Close();
actual.FileStream.Dispose();
}