Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
96a8a7c4
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
96a8a7c4
编写于
12月 30, 2022
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
访问控制授权申请,跳转连接修改为具体的配置子章节内容(#配置文件权限声明)。
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
f79879ca
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
40 addition
and
41 deletion
+40
-41
zh-cn/application-dev/application-models/application-context-stage.md
...ation-dev/application-models/application-context-stage.md
+3
-3
zh-cn/application-dev/application-models/common-event-overview.md
...plication-dev/application-models/common-event-overview.md
+1
-1
zh-cn/application-dev/application-models/hop-multi-device-collaboration.md
...-dev/application-models/hop-multi-device-collaboration.md
+4
-4
zh-cn/application-dev/application-models/mission-management-overview.md
...ion-dev/application-models/mission-management-overview.md
+2
-2
zh-cn/application-dev/application-models/request-permissions.md
...application-dev/application-models/request-permissions.md
+1
-1
zh-cn/application-dev/application-models/uiability-data-sync-with-ui.md
...ion-dev/application-models/uiability-data-sync-with-ui.md
+1
-1
zh-cn/application-dev/media/audio-capturer.md
zh-cn/application-dev/media/audio-capturer.md
+5
-5
zh-cn/application-dev/media/audio-volume-manager.md
zh-cn/application-dev/media/audio-volume-manager.md
+6
-6
zh-cn/application-dev/notification/notification-subscription.md
...application-dev/notification/notification-subscription.md
+1
-1
zh-cn/application-dev/task-management/reminder-agent-development.md
...ication-dev/task-management/reminder-agent-development.md
+2
-2
zh-cn/device-dev/device-test/developer_test.md
zh-cn/device-dev/device-test/developer_test.md
+1
-1
zh-cn/readme/测试子系统.md
zh-cn/readme/测试子系统.md
+13
-14
未找到文件。
zh-cn/application-dev/application-models/application-context-stage.md
浏览文件 @
96a8a7c4
...
@@ -176,7 +176,7 @@ export default class EntryAbility extends UIAbility {
...
@@ -176,7 +176,7 @@ export default class EntryAbility extends UIAbility {
> **说明:**
> **说明:**
> 当获取的是其他应用的Context时:
> 当获取的是其他应用的Context时:
>
>
> - 申请`ohos.permission.GET_BUNDLE_INFO_PRIVILEGED`权限,配置方式请参
阅[访问控制授权申请指导](../security/accesstoken-guidelines.md#stage模型
)。
> - 申请`ohos.permission.GET_BUNDLE_INFO_PRIVILEGED`权限,配置方式请参
见[访问控制授权申请](../security/accesstoken-guidelines.md#配置文件权限声明
)。
>
>
> - 接口为系统接口,三方应用不支持调用。
> - 接口为系统接口,三方应用不支持调用。
...
@@ -199,7 +199,7 @@ export default class EntryAbility extends UIAbility {
...
@@ -199,7 +199,7 @@ export default class EntryAbility extends UIAbility {
> **说明:**
> **说明:**
> 当获取的是其他应用的指定Module的Context时:
> 当获取的是其他应用的指定Module的Context时:
>
>
> - 申请`ohos.permission.GET_BUNDLE_INFO_PRIVILEGED`权限,配置方式请参
阅[访问控制授权申请指导](../security/accesstoken-guidelines.md#stage模型
)。
> - 申请`ohos.permission.GET_BUNDLE_INFO_PRIVILEGED`权限,配置方式请参
见[访问控制授权申请](../security/accesstoken-guidelines.md#配置文件权限声明
)。
>
>
> - 接口为系统接口,三方应用不支持调用。
> - 接口为系统接口,三方应用不支持调用。
...
@@ -303,7 +303,7 @@ export default class EntryAbility extends UIAbility {
...
@@ -303,7 +303,7 @@ export default class EntryAbility extends UIAbility {
每个Ability中都包含了一个Context属性。Ability功能主要是处理生命周期,其余操作Ability的方法(例如startAbility()、connectServiceExtensionAbility()、terminateSelf()等)都是在对应的Context中实现的,同时Context也提供了获取Ability的配置信息、向用户申请授权等能力,如何获取Context请参见
[
获取UIAbility的上下文信息
](
uiability-usage.md#获取uiability的上下文信息
)
。
每个Ability中都包含了一个Context属性。Ability功能主要是处理生命周期,其余操作Ability的方法(例如startAbility()、connectServiceExtensionAbility()、terminateSelf()等)都是在对应的Context中实现的,同时Context也提供了获取Ability的配置信息、向用户申请授权等能力,如何获取Context请参见
[
获取UIAbility的上下文信息
](
uiability-usage.md#获取uiability的上下文信息
)
。
应用需要获取用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,需要向用户申请授权,示意效果如下图所示。具体使用请参见
[
访问控制授权申请
指导
](
../security/accesstoken-guidelines.md
)
。
应用需要获取用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,需要向用户申请授权,示意效果如下图所示。具体使用请参见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md
)
。
**图2**
向用户申请日历访问授权
**图2**
向用户申请日历访问授权
<img
src=
"figures/application-context-stage.png"
alt=
"application-context-stage"
style=
"zoom:50%;"
/>
<img
src=
"figures/application-context-stage.png"
alt=
"application-context-stage"
style=
"zoom:50%;"
/>
\ No newline at end of file
zh-cn/application-dev/application-models/common-event-overview.md
浏览文件 @
96a8a7c4
...
@@ -19,7 +19,7 @@ OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程
...
@@ -19,7 +19,7 @@ OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程
-
有序公共事件:CES转发公共事件时,按订阅者订阅先后顺序,在接收到前一个订阅者回复后,再转发下一个订阅者。
-
有序公共事件:CES转发公共事件时,按订阅者订阅先后顺序,在接收到前一个订阅者回复后,再转发下一个订阅者。
-
粘性公共事件:能够让订阅者收到在订阅前已经发送的公共事件就是粘性公共事件。普通的公共事件只能在订阅后发送才能收到,而粘性公共事件的特殊性就是可以先发送后订阅。发送粘性事件必须是系统应用或系统服务,且需要申请
`ohos.permission.COMMONEVENT_STICKY`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
-
粘性公共事件:能够让订阅者收到在订阅前已经发送的公共事件就是粘性公共事件。普通的公共事件只能在订阅后发送才能收到,而粘性公共事件的特殊性就是可以先发送后订阅。发送粘性事件必须是系统应用或系统服务,且需要申请
`ohos.permission.COMMONEVENT_STICKY`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
每个应用都可以按需订阅公共事件,订阅成功,当公共事件发布时,系统会将其发送给对应的应用。这些公共事件可能来自系统、其他应用和应用自身。
每个应用都可以按需订阅公共事件,订阅成功,当公共事件发布时,系统会将其发送给对应的应用。这些公共事件可能来自系统、其他应用和应用自身。
...
...
zh-cn/application-dev/application-models/hop-multi-device-collaboration.md
浏览文件 @
96a8a7c4
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
### 开发步骤
### 开发步骤
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
申请数据同步权限,弹框示例代码。
2.
申请数据同步权限,弹框示例代码。
...
@@ -129,7 +129,7 @@
...
@@ -129,7 +129,7 @@
### 开发步骤
### 开发步骤
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
申请数据同步权限,弹框示例代码。
2.
申请数据同步权限,弹框示例代码。
...
@@ -218,7 +218,7 @@
...
@@ -218,7 +218,7 @@
### 开发步骤
### 开发步骤
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
申请数据同步权限,弹框示例代码。
2.
申请数据同步权限,弹框示例代码。
...
@@ -327,7 +327,7 @@
...
@@ -327,7 +327,7 @@
### 开发步骤
### 开发步骤
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
1.
申请
`ohos.permission.DISTRIBUTED_DATASYNC`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
申请数据同步权限,弹框示例代码。
2.
申请数据同步权限,弹框示例代码。
...
...
zh-cn/application-dev/application-models/mission-management-overview.md
浏览文件 @
96a8a7c4
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
-
MissionList:一个从桌面开始启动的任务列表,记录了任务之间的启动关系,上一个任务由下一个任务启动,最底部的任务由桌面启动,这里称之为任务链。
-
MissionList:一个从桌面开始启动的任务列表,记录了任务之间的启动关系,上一个任务由下一个任务启动,最底部的任务由桌面启动,这里称之为任务链。
-
MissionListManager:系统任务管理模块,内部维护了当前所有的任务链,与最近任务列表保持一致。
-
MissionListManager:系统任务管理模块,内部维护了当前所有的任务链,与最近任务列表保持一致。
**图1**
任务管理示意图
**图1**
任务管理示意图
!
[
mission-list-manager
](
figures/mission-list-manager.png
)
!
[
mission-list-manager
](
figures/mission-list-manager.png
)
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
一个UIAbility实例对应一个单独的任务,因此应用调用startAbility()方法启动一个UIAbility时,就是创建了一个任务。
一个UIAbility实例对应一个单独的任务,因此应用调用startAbility()方法启动一个UIAbility时,就是创建了一个任务。
桌面应用调用
[
missionManager
](
../reference/apis/js-apis-application-missionManager.md
)
的接口管理任务,需要申请
`ohos.permission.MANAGE_MISSIONS`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
桌面应用调用
[
missionManager
](
../reference/apis/js-apis-application-missionManager.md
)
的接口管理任务,需要申请
`ohos.permission.MANAGE_MISSIONS`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
利用missionManager进行任务管理(监听任务变化、获取任务信息、获取任务快照、清理任务、任务加锁/解锁等),示例代码如下:
利用missionManager进行任务管理(监听任务变化、获取任务信息、获取任务快照、清理任务、任务加锁/解锁等),示例代码如下:
...
...
zh-cn/application-dev/application-models/request-permissions.md
浏览文件 @
96a8a7c4
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
在config.json声明需要的权限,在module下添加"reqPermissions",并写入对应权限。
在config.json声明需要的权限,在module下添加"reqPermissions",并写入对应权限。
如申请访问日历权限,需要申请
`ohos.permission.READ_CALENDAR`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
如申请访问日历权限,需要申请
`ohos.permission.READ_CALENDAR`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
对应config.json文件的示例代码如下所示:
对应config.json文件的示例代码如下所示:
...
...
zh-cn/application-dev/application-models/uiability-data-sync-with-ui.md
浏览文件 @
96a8a7c4
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
-
EventHub:
[
基类Context
](
application-context-stage.md
)
提供了EventHub的能力,使用发布订阅模式来实现。事件需要先订阅后发布,订阅者收到消息后进行处理。
-
EventHub:
[
基类Context
](
application-context-stage.md
)
提供了EventHub的能力,使用发布订阅模式来实现。事件需要先订阅后发布,订阅者收到消息后进行处理。
-
globalThis:ArkTS引擎实例内部的一个全局对象,在ArkTS引擎实例内部都能访问。
-
globalThis:ArkTS引擎实例内部的一个全局对象,在ArkTS引擎实例内部都能访问。
-
-
[
页面级变量的状态管理
](
../quick-start/arkts-state-mgmt-application-level.md
)
。
## 使用EventHub进行数据通信
## 使用EventHub进行数据通信
...
...
zh-cn/application-dev/media/audio-capturer.md
浏览文件 @
96a8a7c4
...
@@ -21,7 +21,7 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
...
@@ -21,7 +21,7 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
## 约束与限制
## 约束与限制
开发者在进行音频数据采集功能开发前,需要先对所开发的应用配置麦克风权限(ohos.permission.MICROPHONE),
权限配置相关内容可参考:
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
开发者在进行音频数据采集功能开发前,需要先对所开发的应用配置麦克风权限(ohos.permission.MICROPHONE),
配置方式请参见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
## 开发指导
## 开发指导
...
@@ -178,16 +178,16 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
...
@@ -178,16 +178,16 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
// 获取采集器信息
// 获取采集器信息
let
audioCapturerInfo
:
audio
.
AuduioCapturerInfo
=
await
audioCapturer
.
getCapturerInfo
();
let
audioCapturerInfo
:
audio
.
AuduioCapturerInfo
=
await
audioCapturer
.
getCapturerInfo
();
// 获取音频流信息
// 获取音频流信息
let
audioStreamInfo
:
audio
.
AudioStreamInfo
=
await
audioCapturer
.
getStreamInfo
();
let
audioStreamInfo
:
audio
.
AudioStreamInfo
=
await
audioCapturer
.
getStreamInfo
();
// 获取音频流ID
// 获取音频流ID
let
audioStreamId
:
number
=
await
audioCapturer
.
getAudioStreamId
();
let
audioStreamId
:
number
=
await
audioCapturer
.
getAudioStreamId
();
// 获取纳秒形式的Unix时间戳
// 获取纳秒形式的Unix时间戳
let
audioTime
:
number
=
await
audioCapturer
.
getAudioTime
();
let
audioTime
:
number
=
await
audioCapturer
.
getAudioTime
();
// 获取合理的最小缓冲区大小
// 获取合理的最小缓冲区大小
let
bufferSize
:
number
=
await
audioCapturer
.
getBuffersize
();
let
bufferSize
:
number
=
await
audioCapturer
.
getBuffersize
();
```
```
...
...
zh-cn/application-dev/media/audio-volume-manager.md
浏览文件 @
96a8a7c4
...
@@ -16,7 +16,7 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
...
@@ -16,7 +16,7 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
## 约束与限制
## 约束与限制
开发者在进行麦克风管理开发前,需要先对所开发的应用配置麦克风权限(ohos.permission.MICROPHONE),如果要设置麦克风状态,则需要配置音频管理配置权限(ohos.permission.MANAGE_AUDIO_CONFIG),需注意该权限为系统级别权限。
权限配置相关内容可参考:
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
开发者在进行麦克风管理开发前,需要先对所开发的应用配置麦克风权限(ohos.permission.MICROPHONE),如果要设置麦克风状态,则需要配置音频管理配置权限(ohos.permission.MANAGE_AUDIO_CONFIG),需注意该权限为系统级别权限。
配置方式请参见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
## 开发指导
## 开发指导
...
@@ -89,27 +89,27 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
...
@@ -89,27 +89,27 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
var
audioVolumeGroupManager
=
await
audio
.
getAudioManager
().
getVolumeManager
().
getVolumeGroupManager
(
groupid
);
var
audioVolumeGroupManager
=
await
audio
.
getAudioManager
().
getVolumeManager
().
getVolumeGroupManager
(
groupid
);
console
.
info
(
'
audioVolumeGroupManager create success.
'
);
console
.
info
(
'
audioVolumeGroupManager create success.
'
);
}
}
async
on
()
{
//监听麦克风状态变化
async
on
()
{
//监听麦克风状态变化
await
loadVolumeGroupManager
();
await
loadVolumeGroupManager
();
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
on
(
'
micStateChange
'
,
(
micStateChange
)
=>
{
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
on
(
'
micStateChange
'
,
(
micStateChange
)
=>
{
console
.
info
(
`Current microphone status is:
${
micStateChange
.
mute
}
`
);
console
.
info
(
`Current microphone status is:
${
micStateChange
.
mute
}
`
);
});
});
}
}
async
isMicrophoneMute
()
{
//查询麦克风是否静音
async
isMicrophoneMute
()
{
//查询麦克风是否静音
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
isMicrophoneMute
().
then
((
value
)
=>
{
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
isMicrophoneMute
().
then
((
value
)
=>
{
console
.
info
(
`isMicrophoneMute is:
${
value
}
.`
);
console
.
info
(
`isMicrophoneMute is:
${
value
}
.`
);
});
});
}
}
async
setMicrophoneMuteTrue
()
{
//设置麦克风静音
async
setMicrophoneMuteTrue
()
{
//设置麦克风静音
await
loadVolumeGroupManager
();
await
loadVolumeGroupManager
();
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
setMicrophoneMute
(
true
).
then
(()
=>
{
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
setMicrophoneMute
(
true
).
then
(()
=>
{
console
.
info
(
'
setMicrophoneMute to mute.
'
);
console
.
info
(
'
setMicrophoneMute to mute.
'
);
});
});
}
}
async
setMicrophoneMuteFalse
()
{
//取消麦克风静音
async
setMicrophoneMuteFalse
()
{
//取消麦克风静音
await
loadVolumeGroupManager
();
await
loadVolumeGroupManager
();
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
setMicrophoneMute
(
false
).
then
(()
=>
{
await
audioVolumeGroupManager
.
audioVolumeGroupManager
.
setMicrophoneMute
(
false
).
then
(()
=>
{
...
@@ -123,5 +123,5 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
...
@@ -123,5 +123,5 @@ AudioVolumeManager提供了音量管理的方法。开发者可以通过本指
await
isMicrophoneMute
();
await
isMicrophoneMute
();
await
setMicrophoneMuteFalse
();
await
setMicrophoneMuteFalse
();
}
}
```
```
zh-cn/application-dev/notification/notification-subscription.md
浏览文件 @
96a8a7c4
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
## 开发步骤
## 开发步骤
1.
申请
`ohos.permission.NOTIFICATION_CONTROLLER`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
。
1.
申请
`ohos.permission.NOTIFICATION_CONTROLLER`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
导入通知订阅模块。
2.
导入通知订阅模块。
...
...
zh-cn/application-dev/task-management/reminder-agent-development.md
浏览文件 @
96a8a7c4
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
## 开发步骤
## 开发步骤
1.
申请
`ohos.permission.PUBLISH_AGENT_REMINDER`
权限,配置方式请参
阅
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md#stage模型
)
。
1.
申请
`ohos.permission.PUBLISH_AGENT_REMINDER`
权限,配置方式请参
见
[
访问控制授权申请
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
2.
[
使能通知开关
](
../notification/notification-enable.md
)
,获得用户授权后,才能使用代理提醒功能。
2.
[
使能通知开关
](
../notification/notification-enable.md
)
,获得用户授权后,才能使用代理提醒功能。
...
@@ -164,7 +164,7 @@
...
@@ -164,7 +164,7 @@
```
js
```
js
let
reminderId
=
0
;
// reminderId的值从发布提醒代理成功之后的回调中获得
let
reminderId
=
0
;
// reminderId的值从发布提醒代理成功之后的回调中获得
try
{
try
{
reminderAgentManager
.
cancelReminder
(
reminderId
).
then
(()
=>
{
reminderAgentManager
.
cancelReminder
(
reminderId
).
then
(()
=>
{
console
.
log
(
"
cancelReminder promise
"
);
console
.
log
(
"
cancelReminder promise
"
);
...
...
zh-cn/device-dev/device-test/developer_test.md
浏览文件 @
96a8a7c4
...
@@ -20,7 +20,7 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速
...
@@ -20,7 +20,7 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速
## 环境准备
## 环境准备
开发自测试框架依赖于python运行环境,python版本为3.7.5及以上版本,在使用测试框架之前可参
阅
以下方式进行配置。
开发自测试框架依赖于python运行环境,python版本为3.7.5及以上版本,在使用测试框架之前可参
见
以下方式进行配置。
源码获取可
[
参考
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md
)
。
源码获取可
[
参考
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md
)
。
...
...
zh-cn/readme/测试子系统.md
浏览文件 @
96a8a7c4
...
@@ -3,7 +3,7 @@ OpenHarmony为开发者提供了一套全面的自测试框架,开发者可根
...
@@ -3,7 +3,7 @@ OpenHarmony为开发者提供了一套全面的自测试框架,开发者可根
本文从基础环境构建,用例开发,编译以及执行等方面介绍OpenHarmony测试框架如何运行和使用。
本文从基础环境构建,用例开发,编译以及执行等方面介绍OpenHarmony测试框架如何运行和使用。
## 基础环境构建
## 基础环境构建
测试框架依赖于python运行环境,在使用测试框架之前可参
阅
以下方式进行配置。
测试框架依赖于python运行环境,在使用测试框架之前可参
见
以下方式进行配置。
-
[
环境配置
](
../device-dev/device-test/xdevice.md
)
-
[
环境配置
](
../device-dev/device-test/xdevice.md
)
-
[
源码获取
](
../device-dev/get-code/sourcecode-acquire.md
)
-
[
源码获取
](
../device-dev/get-code/sourcecode-acquire.md
)
...
@@ -119,7 +119,7 @@ subsystem # 子系统
...
@@ -119,7 +119,7 @@ subsystem # 子系统
{
{
// step 1:调用函数获取结果
// step 1:调用函数获取结果
int actual = Sub(4,0);
int actual = Sub(4,0);
// Step 2:使用断言比较预期与实际结果
// Step 2:使用断言比较预期与实际结果
EXPECT_EQ(4, actual);
EXPECT_EQ(4, actual);
}
}
...
@@ -132,7 +132,7 @@ subsystem # 子系统
...
@@ -132,7 +132,7 @@ subsystem # 子系统
2. 引用测试框架头文件和命名空间
2. 引用测试框架头文件和命名空间
```
```
#include <gtest/gtest.h>
#include <gtest/gtest.h>
using namespace testing::ext;
using namespace testing::ext;
```
```
3. 添加被测试类的头文件
3. 添加被测试类的头文件
...
@@ -148,22 +148,22 @@ subsystem # 子系统
...
@@ -148,22 +148,22 @@ subsystem # 子系统
void SetUp();
void SetUp();
void TearDown();
void TearDown();
};
};
void CalculatorSubTest::SetUpTestCase(void)
void CalculatorSubTest::SetUpTestCase(void)
{
{
// input testsuit setup step,setup invoked before all testcases
// input testsuit setup step,setup invoked before all testcases
}
}
void CalculatorSubTest::TearDownTestCase(void)
void CalculatorSubTest::TearDownTestCase(void)
{
{
// input testsuit teardown step,teardown invoked after all testcases
// input testsuit teardown step,teardown invoked after all testcases
}
}
void CalculatorSubTest::SetUp(void)
void CalculatorSubTest::SetUp(void)
{
{
// input testcase setup step,setup invoked before each testcases
// input testcase setup step,setup invoked before each testcases
}
}
void CalculatorSubTest::TearDown(void)
void CalculatorSubTest::TearDown(void)
{
{
// input testcase teardown step,teardown invoked after each testcases
// input testcase teardown step,teardown invoked after each testcases
...
@@ -183,7 +183,7 @@ subsystem # 子系统
...
@@ -183,7 +183,7 @@ subsystem # 子系统
{
{
//step 1:调用函数获取结果
//step 1:调用函数获取结果
int actual = Sub(4,0);
int actual = Sub(4,0);
//Step 2:使用断言比较预期与实际结果
//Step 2:使用断言比较预期与实际结果
EXPECT_EQ(4, actual);
EXPECT_EQ(4, actual);
}
}
...
@@ -262,7 +262,7 @@ subsystem # 子系统
...
@@ -262,7 +262,7 @@ subsystem # 子系统
it("appInfoTest001", 0, function () {
it("appInfoTest001", 0, function () {
//step 1:调用函数获取结果
//step 1:调用函数获取结果
var info = app.getInfo()
var info = app.getInfo()
//Step 2:使用断言比较预期与实际结果
//Step 2:使用断言比较预期与实际结果
expect(info != null).assertEqual(true)
expect(info != null).assertEqual(true)
})
})
...
@@ -276,7 +276,7 @@ subsystem # 子系统
...
@@ -276,7 +276,7 @@ subsystem # 子系统
2. 导入被测api和jsunit测试库
2. 导入被测api和jsunit测试库
```
```
import app from '@system.app'
import app from '@system.app'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
```
```
3. 定义测试套(测试类)
3. 定义测试套(测试类)
...
@@ -313,7 +313,7 @@ subsystem # 子系统
...
@@ -313,7 +313,7 @@ subsystem # 子系统
it("appInfoTest001", 0, function () {
it("appInfoTest001", 0, function () {
//step 1:调用函数获取结果
//step 1:调用函数获取结果
var info = app.getInfo()
var info = app.getInfo()
//Step 2:使用断言比较预期与实际结果
//Step 2:使用断言比较预期与实际结果
expect(info != null).assertEqual(true)
expect(info != null).assertEqual(true)
})
})
...
@@ -415,7 +415,7 @@ subsystem # 子系统
...
@@ -415,7 +415,7 @@ subsystem # 子系统
> - ohos_securitytest:安全测试
> - ohos_securitytest:安全测试
> - ohos_reliabilitytest:可靠性测试
> - ohos_reliabilitytest:可靠性测试
> - ohos_distributedtest:分布式测试
> - ohos_distributedtest:分布式测试
7. 对目标测试用例文件进行条件分组
7. 对目标测试用例文件进行条件分组
```
```
...
@@ -425,7 +425,7 @@ subsystem # 子系统
...
@@ -425,7 +425,7 @@ subsystem # 子系统
}
}
```
```
> **说明:** 进行条件分组的目的在于执行用例时可以选择性的执行某一种特定类型的用例。
> **说明:** 进行条件分组的目的在于执行用例时可以选择性的执行某一种特定类型的用例。
-
**JavaScript用例编译配置示例**
-
**JavaScript用例编译配置示例**
```
```
...
@@ -811,6 +811,5 @@ reports/latest
...
@@ -811,6 +811,5 @@ reports/latest
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录