本文档概述了Markdown Here扩展中使用的测试框架和方法。它提供了关于测试如何构建、执行和扩展以确保代码质量和跨浏览器兼容性的技术信息。
Markdown Here采用基于浏览器的测试系统,使用Mocha作为测试框架,Chai用于断言。这些测试旨在验证核心功能组件,包括HTML到Markdown的转换、渲染管道、用户偏好管理和核心切换功能。
来源:src/common/test/index.html1-54 src/common/test/test-prep.js1-7
测试系统围绕一个中心HTML测试运行器组织,该运行器导入应用程序代码和测试文件。这种方法允许在与扩展实际运行时环境非常相似的环境中进行测试。
来源:src/common/test/index.html20-48
每个测试文件都专注于扩展的特定组件,遵循Mocha BDD风格的语法,包含嵌套的describe和it块。测试利用Chai的expect断言来验证功能。
来源:src/common/test/mdh-html-to-text-test.js14-202 src/common/test/options-store-test.js12-256
测试在浏览器环境中执行,这允许在与扩展运行条件相似的环境中进行测试。
src/common/test/index.html为了开发目的,test/index.html中提供了一个更简单的测试环境,它创建了一个类似于电子邮件撰写区域的可编辑iframe。
来源:src/common/test/test-run.js1-13 test/index.html1-29
mdh-html-to-text-test.js文件测试了关键的HTML到Markdown转换功能,这对于在渲染和未渲染状态之间正确切换至关重要。
测试验证了
该模块提供了辅助函数,用于测试普通转换(get())和检查未渲染的Markdown(check())。
来源:src/common/test/mdh-html-to-text-test.js22-38 src/common/test/mdh-html-to-text-test.js41-202
options-store-test.js文件测试了扩展的偏好设置存储系统,该系统必须在不同的浏览器环境中保持一致工作。
测试验证了
来源:src/common/test/options-store-test.js17-253
markdown-here-test.js文件测试了核心的markdownHere()函数,该函数在渲染和未渲染状态之间进行切换。它使用辅助函数来模拟用户操作并验证渲染结果。
来源:src/common/test/markdown-here-test.js22-115
common-logic-test.js测试了实用工具函数,包括“忘记渲染”检测系统,该系统可防止用户意外发送未渲染的Markdown。
主要测试包括
来源:src/common/test/common-logic-test.js12-121
在Markdown Here中添加新功能或修复bug时,应创建相应的测试来验证其功能。以下是推荐的流程:
describe块(如果需要)it块,测试正常功能和边缘情况存在一些辅助函数可以使测试更容易
mdh-html-to-text-test.js中的MdhHtmlToText测试辅助函数,用于测试HTML到文本的转换markdown-here-test.js中的渲染辅助函数,用于测试渲染过程测试系统依赖于几个第三方库:
这些依赖项包含在测试运行器HTML中,无需单独安装。
来源:src/common/test/index.html37-40
使用Markdown Here测试系统时:
通过遵循这些测试实践,Markdown Here扩展可以在各种浏览器、电子邮件客户端和不同的使用场景中保持其可靠性。