Существуют ли какие-либо общие практики, фреймворки или шаблоны для модульного тестирования кода на основе office.js? Учитывая большое количество компонентов в объектной модели, имитировать вызовы office.js невозможно. Есть ли что-то вроде средства запуска кармы для запуска тестового кода в приложении панели задач тестового контейнера? Кто-нибудь разработал эффективный способ тестирования кода, взаимодействующего с office.js?
Как выполнить модульное тестирование кода приложения office.js?
Ответы (2)
Я думаю, вам следует выполнить модульное тестирование кода на основе Office.js так же, как и для «стандартного» кода javascript. Действительно, Office.js - это просто еще одна зависимость javascript, такая как JQuery и т. Д.
Конечно, вам не следует включать Office.js на тестовую страницу и заменять объект Office на макет. Вы можете ознакомиться с Sinon Js, фреймворком для имитации JavaScript.
Когда вы пишете модульный тест, вы изолируете фрагмент кода (класс или модуль), который называется тестируемой системой (SUT). Если вы основали свое дополнение на платформе одностраничных приложений, такой как Angular, SUT может быть контроллером. Затем вы можете внедрить объект Office как зависимость, в реальном контексте это будет настоящий Office из Office.js. В тесте это будет макет.
Вот что я в итоге сделал:
- В решение добавлен новый проект приложения панели задач
- Включен автономный zip-архив Jasmine из https://github.com/jasmine/jasmine/releases
- Местоположение источника манифеста приложения TaskPane указывает на SpecRunner.html.
- Изменен boot.js, чтобы заменить выполнение тестовых спецификаций в window.load на выполнение в Office.initilize.