minium 使用 mock_choose_image 触发上传怎么选择图片点击上uni.getStorageSync('roleKey') ROLE_MOBILE_WORKERS传
时间: 2024-12-11 15:25:30 浏览: 14
在Minium中,`mock_choose_image`通常用于模拟用户在选择图片时的行为,特别是在自动化测试中。当你想要触发上传图片,并且依赖于存储在本地的`roleKey`值(这里是`uni.getStorageSync('roleKey')`返回的ROLE_MOBILE_WORKERS角色标识),你需要按照以下步骤操作:
1. **设置预期值**:首先,在你的测试脚本开始前,你需要确保`uni.getStorageSync('roleKey')`已经返回了`ROLE_MOBILE_WORKERS`。你可以通过设置`jest.fn()`或者使用`minium.config.set()`方法预先配置`getStorageSync`函数,使其返回期望的角色键。
```javascript
// 如果使用Jest模拟
uni.getStorageSync = jest.fn().mockReturnValue('ROLE_MOBILE_WORKERS');
// 或者 Minium 配置
minium.config.set('getStorageSync', (key) => {
if (key === 'roleKey') return 'ROLE_MOBILE_WORKERS';
});
```
2. **模拟选择图片**:然后,当需要模拟用户点击选择图片时,可以调用`mock_choose_image`方法,并传递相关的参数,比如一个回调函数,该函数会在用户选择图片后执行。在回调里,你可以检查`roleKey`是否满足条件,再进行下一步操作。
```javascript
const selectImage = () => {
// 调用mock_choose_image
browser.mockChooseImage((imageInfo) => {
// 在这里检查 roleKey 是否为 ROLE_MOBILE_WORKERS
const isWorkerRole = imageInfo.roleKey === 'ROLE_MOBILE_WORKERS';
// 如果是工人角色,则继续模拟上传操作
if (isWorkerRole) {
// 模拟上传图片...
}
});
};
```
3. **模拟上传图片**:最后,你可以根据`roleKey`的判断结果,调用相应的上传方法。如果需要,还可以配合Mock库对上传接口进行模拟响应。
```javascript
selectImage();
// 假设有一个uploadImage方法,可以根据roleKey判断是否实际发送请求
const uploadImageMock = jest.fn();
if (isWorkerRole) {
browser.api.uploadImage(imageInfo, uploadImageMock);
}
// 测试完成后清理模拟
afterEach(() => {
uni.getStorageSync.mockRestore();
uploadImageMock.mockClear();
});
```
阅读全文