您如何对 office.js 应用代码进行单元测试?
How do you unit test office.js app code?
是否有针对基于 office.js 的代码进行单元测试的通用实践、框架或模式?
鉴于 thr 对象模型中的大量组件,不可能模拟对 office.js 的调用。
是否有类似 karma 启动器的东西可以将测试代码启动到测试容器任务窗格应用程序中?
有人找到了一种有效的方法来测试与 office.js?
交互的代码
我认为您应该对基于 Office.js 的代码进行单元测试,就像对 "standard" javascript 代码进行单元测试一样。事实上,Office.js 只是另一个 javascript 依赖项,如 JQuery 等
当然,您不应在测试页中包含 Office.js 并用模拟替换 Office 对象。您可以查看 Sinon Js 一个 javascript 模拟框架。
编写单元测试时,您将一段代码(一个 class 或一个模块)隔离开来,称为被测系统 (SUT)。如果您的插件基于单页应用程序框架,例如 Angular,SUT 可以是控制器。然后您可以将 Office 对象作为依赖项注入,在 真实 上下文中,这将是来自 Office.js 的真实 Office。在测试中,这将是一个模拟。
这是我最后做的事情:
- 向解决方案添加了一个新的任务窗格应用程序项目
- 包括 Jasmine Standalone zip 来自
https://github.com/jasmine/jasmine/releases
- 使 TaskPane 应用程序的清单源位置指向 SpecRunner.html
- 已修改 boot.js 以将在 window.load 上执行的测试规范替换为在 Office.initilize 上执行。
是否有针对基于 office.js 的代码进行单元测试的通用实践、框架或模式? 鉴于 thr 对象模型中的大量组件,不可能模拟对 office.js 的调用。 是否有类似 karma 启动器的东西可以将测试代码启动到测试容器任务窗格应用程序中? 有人找到了一种有效的方法来测试与 office.js?
交互的代码我认为您应该对基于 Office.js 的代码进行单元测试,就像对 "standard" javascript 代码进行单元测试一样。事实上,Office.js 只是另一个 javascript 依赖项,如 JQuery 等
当然,您不应在测试页中包含 Office.js 并用模拟替换 Office 对象。您可以查看 Sinon Js 一个 javascript 模拟框架。
编写单元测试时,您将一段代码(一个 class 或一个模块)隔离开来,称为被测系统 (SUT)。如果您的插件基于单页应用程序框架,例如 Angular,SUT 可以是控制器。然后您可以将 Office 对象作为依赖项注入,在 真实 上下文中,这将是来自 Office.js 的真实 Office。在测试中,这将是一个模拟。
这是我最后做的事情:
- 向解决方案添加了一个新的任务窗格应用程序项目
- 包括 Jasmine Standalone zip 来自 https://github.com/jasmine/jasmine/releases
- 使 TaskPane 应用程序的清单源位置指向 SpecRunner.html
- 已修改 boot.js 以将在 window.load 上执行的测试规范替换为在 Office.initilize 上执行。