Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
Hello UTS
提交
9f41c19d
H
Hello UTS
项目概览
DCloud
/
Hello UTS
通知
1595
Star
27
Fork
9
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
Hello UTS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9f41c19d
编写于
8月 19, 2024
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增 Promise 部分自动化测试例
上级
4a847ddf
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
209 addition
and
5 deletion
+209
-5
uni_modules/uts-tests/utssdk/Promise.uts
uni_modules/uts-tests/utssdk/Promise.uts
+197
-0
uni_modules/uts-tests/utssdk/index.uts
uni_modules/uts-tests/utssdk/index.uts
+12
-5
未找到文件。
uni_modules/uts-tests/utssdk/Promise.uts
0 → 100644
浏览文件 @
9f41c19d
import { describe, test, expect, Result } from './tests.uts'
export function testPromise(): Result {
return describe("Promise", () => {
// #ifdef APP-IOS
test('constructor', () => {
// 常规方式
let p = new Promise<Int>((resolve, reject) => {
let success = true;
setTimeout(()=>{
if (success) {
resolve(2024)
} else{
let error = new Error("something going wrong")
reject(error)
}
}, 10);
});
p.then((res: Int) => {
expect(res).toEqual(2024)
})
// 单个函数
let p1 = new Promise<any | null>((resolve: (value: any | null) => void) => {
setTimeout(function() {
resolve(null)
}, 10);
})
p1.then((res: any | null) => {
expect(res).toEqual(null)
})
// 指定函数类型
let p2 = new Promise((resolve: (value: string) => void, reject: (error: any | null) => void) => {
setTimeout(function() {
reject(null)
}, 10);
})
p2.then()
.catch((error: any | null) => {
expect(error).toEqual(null)
})
})
test('then', () => {
let p = new Promise<string>((reslove, reject) => {
setTimeout(function() {
reslove("hello world")
}, 13);
})
p.then(
(res: string): Promise<string> => {
expect(res).toEqual("hello world")
let p0 = new Promise<string>((reslove,reject) => {
var success = true;
setTimeout(function() {
success = true;
if (success) {
reslove(res + " 2024")
} else{
reject("first then p0 reject message")
}
}, 8);
})
return p0;
},
(err: any | null): void => {
throw new Error("first then throw error")
}
)
.catch(
(err):string => {
return "first catch return message"
}
)
.then(
(res) => {
console.log(res)
expect(res).toEqual("hello world 2024")
}
)
.catch(
(err) => {
console.log(err, "this is seconded catch")
}
)
.finally(() => {
console.log("finally")
expect("finally").toEqual("finally")
})
})
test('catch', () => {
})
test('finally', () => {
})
test('resolve', () => {
})
test('reject', () => {
})
test('all', () => {
let p0 = new Promise<string>((resolve, reject) => {
setTimeout(function() {
resolve("1");
}, 10);
})
let p1 = new Promise<string>((resolve, reject) => {
setTimeout(function() {
resolve("2");
}, 10);
})
let p2 = new Promise<string>((resolve, reject) => {
setTimeout(function() {
resolve("3");
}, 10);
})
let p3 = new Promise<string>((resolve, reject) => {
setTimeout(function() {
let error = new Error("p3 reject reason")
reject(error);
}, 10);
})
// resolve
Promise.all([p0, p1, p2])
.then((res) => {
console.log(res);
expect(res).toEqual(["1", "2", "3"])
})
// reject
Promise.all([p1, p2, p3])
.then()
.catch((error) => {
console.log(error);
expect((error as Error).message).toEqual("p3 reject reason");
})
})
test('allSettled', () => {
let p0 = new Promise<string | null>((resolve, reject) => {
setTimeout(function() {
resolve("1");
}, 10);
})
let p1 = new Promise<string | null>((resolve, reject) => {
setTimeout(function() {
resolve(null);
}, 10);
})
let p2 = new Promise<string | null>((resolve, reject) => {
setTimeout(function() {
reject(null)
}, 10);
})
let p3 = new Promise<string | null>((resolve, reject) => {
setTimeout(function() {
let error = new Error("p3 reject reason")
reject(error);
}, 10);
})
Promise.allSettled([p0, p1, p2, p3])
.then((res) => {
console.log(res);
let statusArr : string[] = []
res.forEach((item, index) => {
statusArr.append(item.status)
})
expect(statusArr).toEqual(["fulfilled", "fulfilled", "rejected", "rejected"])
})
})
test('any', () => {
})
test('race', () => {
})
// #endif
})
}
uni_modules/uts-tests/utssdk/index.uts
浏览文件 @
9f41c19d
...
...
@@ -19,9 +19,9 @@ import { testType } from './Type.uts'
export { Result } from './tests.uts'
import { testArrayBuffer } from './ArrayBuffer.uts'
import { testNativeCode } from './NativeCode.uts'
import { testPromise} from "./Promise.uts"
// Promise、Proxy、Reflect、Weakmap、WeakSet 不支持
// Proxy、Reflect、Weakmap、WeakSet 不支持
export function runTests() : UTSJSONObject {
const ArrayRes = testArray();
const DateRes = testDate();
...
...
@@ -46,6 +46,10 @@ export function runTests() : UTSJSONObject {
const ArrayBufferRes = testArrayBuffer();
// #endif
const NativeCodeRes = testNativeCode();
// #ifdef APP-IOS
const PromiseRes = testPromise();
// #endif
return {
Array: ArrayRes,
Date: DateRes,
...
...
@@ -68,6 +72,9 @@ export function runTests() : UTSJSONObject {
// #ifdef APP-ANDROID || WEB
ArrayBuffer: ArrayBufferRes,
// #endif
NativeCode: NativeCodeRes
NativeCode: NativeCodeRes,
// #ifdef APP-IOS
Primise: PromiseRes
// #endif
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录