| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 7 个月前 | ||
| 5 个月前 | ||
| 2 年前 |
Mock
介绍
提供上游(IDE)触发编译构建时的输入rollup对象、类私有方法导出的Mock能力,供UT测试使用。
软件架构
- mock/class_mock: 类私有方法Export Mock源码
- mock/rollup_mock: DevEco上游rollup环节输入 Mock源码
快速开始
ets-loader UT测试采用mocha架构实现,在此基础上介绍Rollup Mock、类私用方法Mock使用方法。
Rollup Mock使用
import RollUpMock from './mock/rollup_mock/rollup_plugin_mock';
mocha.beforeEach(function () {
this.rollup = new RollUpMock();
});
mocha.afterEach(() => {
delete this.rollup;
});
mocha.it('1-1: build debug, getBuildModeInLowerCase', function () {
this.rollup.build();
let buildMode = getBuildModeInLowerCase(this.rollup.share.projectConfig);
expect(buildMode == 'debug').to.be.true;
});
如上,使用rollup数据前,请先在beforeEach/before时机创建RollupMock对象(默认为debug模式,请根据实际场景选择使用beforeEach或者before),调用build接口模拟IDE build Rollup初始化过程。同理preview接口模拟IDE preview Rollup初始化过程,hotreload接口模拟IDE hot reload Rollup初始化过程。
类私用方法Mock使用
import { ModuleHotfixMode } from '../../../../lib/fast_build/ark_compiler/module/module_hotfix_mode';
class ModuleHotfixModeMock extends ModuleHotfixMode {
generateEs2AbcCmdForHotfixMock() {
this.generateEs2AbcCmdForHotfix();
}
}
export default ModuleHotfixModeMock;
在测试私有方法前,请先参照上述案例追加类私有方法Mock实现。
import RollUpMock from '../mock/rollup_mock/rollup_plugin_mock';
import ModuleHotfixModeMock from '../mock/class_mock/module_hotfix_mode_mock';
mocha.beforeEach(function () {
this.rollup = new RollUpMock();
});
mocha.afterEach(() => {
delete this.rollup;
});
mocha.it('1-1: build debug, generateEs2AbcCmdForHotfix', function () {
this.rollup.build();
let hotFixMode = new ModuleHotfixModeMock(this.rollup);
hotFixMode.generateEs2AbcCmdForHotfixMock();
});
如上,调用Mock提供的接口,间接测试类私有方法。