Appearance
学习资料汇总
微信
微信开发者工具提供了命令行与 HTTP 服务两种接口供外部调用,开发者可以通过命令行或 HTTP 请求指示工具进行登录、预览、上传等操作
SDK通过命令行方式将微信开发者工具调起,再通过外部方式导入目标项目。微信开发者工具通过读取目标项目的project.config.js,初始化项目。并读取启动命令的 --auto-port 参数,使得SDK可以通过此端口的Websocket服务,实现与对应的目标小程序调试窗口进行交互。
API组成
最新的SDK的API主要分四个模块:Automater、MiniProgram、Page和Element等。
Automator 模块 提供了启动及连接开发者工具的方法。开发者可以对连接地址、端口号、项目路径等作出设置。归根结底是对于cli的包装。详见: Automator
MiniProgram提供对小程序的控制。 提供以下几类支持,详见: MiniProgram :
路由方法。控制小程序的跳转 系统信息。与API的wx.getSystemInfo等价 转调、mock以及恢复微信API对象wx上的方法 在APP对象上注入方法、向小程序暴露方法 截图、滚动等方法 测试真机、截图、测试账号、关闭等方法 打印事件、报错事件
- Page 模块提供了控制小程序页面的方法。 提供以下几类支持,详见: Page :
页面路径方法 页面元素选取方法 页面元素/逻辑钩子方法 页面数组方法 页面行为方法 页面方法调用代理
- Element 模块提供了控制小程序页面元素的方法。 提供以下几类支持,详见: Element :
元素本身属性获取方法 元素子代与后继选择器方法 元素事件触发方法 元素数据访问方法 元素方法访问代理方法
可以看出,除Automator之外,每个API模块都在自己的领域内提供对小程序自身内容的访问特性以及扩充特性。
与测试框架的整合
miniprogram-automator 本身不提供测试框架,我们可以选用熟悉的测试框架与之整合。
简单科普下jest的工作原理。在项目中,jest识别三种测试文件:
以.test.js结尾的文件 以.spec.js结尾的文件 放到 tests 文件夹中的文件。 Jest 在进行测试的时候,它会在整个项目进行查找,只要碰到这三种文件它都会执行。Jest有以下设定:
一个describe块称为一个“测试套件”。 一个it/test块,称为“测试用例”。测试用例是测试的最小单位。 每个测试文件应至少包含一个describe或一个it/test块。 一个describe块应至少包含一个或多个it/test块。 每个测试用例,可以组合各种断言来判定是否符合预期。
Jest 测试提供了一些测试的生命周期 API。可以辅助我们在每个 case 的开始和结束做一些处理。 这样,在进行一些和数据相关的测试时,可以在测试前准备一些数据,在测试后,清理测试数据。 4 个主要的生命周期函数:
afterAll(fn, timeout): 当前文件中的所有测试执行完成后执行 fn, 如果 fn 是 promise,jest 会等待 timeout 毫秒,默认 5000 afterEach(fn, timeout): 每个 test 执行完后执行 fn,timeout 含义同上 beforeAll(fn, timeout): 同 afterAll,不同之处在于在所有测试开始前执行 beforeEach(fn, timeout): 同 afterEach,不同之处在于在每个测试开始前执行