我正在使用内容控件和OpenXML SDK实现ms word文档生成。我希望对这些代码进行一些自动化测试(单元测试或一些简单的UI自动化测试)。
有没有测试MS Word文档生成的经验?可能的选项有哪些?
提前感谢!
发布于 2010-08-12 23:54:47
不,我没有做过MS Word文档生成的单元测试,但正如IngóVals所说,它应该与任何其他形式的单元测试没有任何不同。
1)可选-确保您了解SDK的正确使用方法。弄清楚你的应用程序应该如何驱动SDK。编写一些模拟预期功能的测试脚本,并确保它们生成的Word文档满足您的期望。
2)创建一个接口(或多个接口),其中包含与生成文档所需的功能相对应的方法。注意:该接口不需要提供OpenXML软件开发工具包的全部功能-只需要您的应用程序所需的功能。
3)创建接口的具体实现,将调用转发到OpenXML SDK
4)使用您在应用程序中创建的接口来执行文档生成。
5)使用NUnit和NMock (或类似的)来编写驱动应用程序生成层的单元测试。这些测试应该使用模拟接口,而不是具体实现的实例。现在,您可以在测试中断言生成层的行为符合您的预期。
发布于 2011-04-07 00:34:45
实际上,我正在用电子表格的api做一些类似的事情,我实际上只是编写了OpenXML OpenXML代码,用于从流中打开文件以进行测试。单元测试并不能真正告诉你足够的信息,因为你需要知道它是否是一个有效的文件。
// 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();
}发布于 2010-08-24 19:50:01
有关OpenXml SDK2.0和有效代码的警告....
我已经生成了OpenXml Powerpoint文档,可以使用XMLSDK2.0工具进行验证,并且可以在我的PC上的Office2007中运行,但当在另一台计算机上使用Office PowerPoint2007打开文档时,它会报错并显示格式无效
XML SDK2.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
https://stackoverflow.com/questions/3356503
复制相似问题