Автоматизированное тестирование OpenXML SDK - PullRequest
10 голосов
/ 28 июля 2010

Я реализую генерацию документов MS Word, используя элементы управления контентом и OpenXML SDK.Я хотел бы провести автоматическое тестирование этого кода (модульные тесты или несколько простых тестов автоматизации пользовательского интерфейса).

Есть ли у кого-нибудь опыт тестирования генерации документов MS Word?Какие есть варианты?

Заранее спасибо!

Ответы [ 3 ]

6 голосов
/ 12 августа 2010

Нет, я не проводил модульное тестирование генерации документов MS Word, но, как говорит Инго Валс, оно не должно отличаться от других форм модульного тестирования.

1) [Необязательно - чтобы вы понимали, как правильно использовать SDK для своих нужд]. Выясните, как ваше приложение должно управлять SDK. Напишите несколько тестовых сценариев, имитирующих предполагаемую функциональность, и убедитесь, что создаваемые ими документы Word соответствуют вашим ожиданиям.

2) Создайте интерфейс (или интерфейсы), которые содержат методы, которые соответствуют функциональности, необходимой для создания документации. Примечание: интерфейс не должен предлагать полную функциональность OpenXML SDK - только ту функциональность, которая необходима для вашего приложения.

3) Создайте конкретную реализацию вашего интерфейса, которая перенаправляет вызовы в OpenXML SDK

4) Используйте интерфейс, созданный в приложении, для генерации документов.

5) Используйте NUnit и NMock (или аналогичные) для написания модульных тестов, управляющих уровнем генерации вашего приложения. Эти тесты должны использовать макетированный интерфейс, а не экземпляр конкретной реализации. Теперь вы можете утверждать в своих тестах, что ваш слой генерации ведет себя так, как вы ожидаете.

2 голосов
/ 06 апреля 2011

Я на самом деле делаю нечто подобное с OpenXML SDK для электронных таблиц, и я на самом деле просто пишу API-код 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();
}
0 голосов
/ 24 августа 2010

Предупреждение относительно OpenXml Sdk 2.0 и действительного кода ....

Я сгенерировал документы OpenXml Powerpoints, которые проверяются с помощью инструментов XML SDK 2.0 и работают в Office 2007 на моем ПК, но при открытии документа на другом компьютереиспользуя Office Powerpoint 2007, он жалуется и говорит, что формат недействителен

XML Sdk 2.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...