Skip to content

Commit 639a515

Browse files
author
Sven
committed
doc: 添加 Unit 测试单元
1 parent 9f673f7 commit 639a515

File tree

3 files changed

+47
-19
lines changed

3 files changed

+47
-19
lines changed

SwiftJSONModeler For Xcode.xcodeproj/xcuserdata/yibin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,5 @@
5252
landmarkType = "7">
5353
</BreakpointContent>
5454
</BreakpointProxy>
55-
<BreakpointProxy
56-
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
57-
<BreakpointContent
58-
uuid = "466B3471-0979-4C9D-A04B-27451E775691"
59-
shouldBeEnabled = "Yes"
60-
ignoreCount = "0"
61-
continueAfterRunningActions = "No"
62-
filePath = "SwiftJSONModeler For XcodeTests/SwiftJSONModelerTest/YApiObjectTest.swift"
63-
startingColumnNumber = "9223372036854775807"
64-
endingColumnNumber = "9223372036854775807"
65-
startingLineNumber = "41"
66-
endingLineNumber = "41"
67-
landmarkName = "testYapiRawTransformObjedt()"
68-
landmarkType = "7">
69-
</BreakpointContent>
70-
</BreakpointProxy>
7155
</Breakpoints>
7256
</Bucket>

SwiftJSONModeler For Xcode/YApi/YApiHelper.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class YApiHelper {
2020
}
2121
/// 按照path解析
2222
var aimPath: String = ""
23+
24+
/// 完整路径对象
2325
var compleObject: YApiObject? {
2426
return object(from: "", dic: originJOSN)
2527
}

SwiftJSONModeler For XcodeTests/SwiftJSONModelerTest/YApiObjectTest.swift

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,57 @@ class YApiObjectTest: XCTestCase {
3030
// Put the code you want to measure the time of here.
3131
}
3232
}
33-
///
33+
/// 测试将 Raw 数据解析按照路径解析 YapiObject
3434
func testYapiRawTransformObjedt() -> Void {
3535
let rawStr =
3636
"""
37+
{"type":"object","title":"empty object","properties":{"person":{"type":"object","properties":{"name":{"type":"string","description":"姓名","mock":{"mock":"小明"}},"age":{"type":"integer","description":"年龄","mock":{"mock":"12"}},"school":{"type":"object","properties":{"address":{"type":"string","mock":{"mock":"xx街道xx号"},"description":"学校地址"},"schoolName":{"type":"string","description":"学校名字"}},"required":["address","schoolName"],"description":"学校"},"likes":{"type":"array","items":{"type":"string"},"description":"好友"},"teachers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"老师名字"},"subject":{"type":"string","description":"科目","mock":{"mock":"语文"}},"isMale":{"type":"boolean","description":"是否为男"}},"required":["name","subject","isMale"]}}},"required":["name","age","school","likes","teachers"],"description":"个人信息详情"}},"required":["person"]}
38+
3739
"""
3840
let helper = YApiHelper(paste: rawStr)
39-
helper.aimPath = "data"
41+
helper.aimPath = "person"
4042
let yapiObject = helper.compleObject
41-
XCTAssertNil(yapiObject)
43+
XCTAssertNotNil(yapiObject)
44+
}
45+
46+
/// yapi 基本类型(object, array, string, integer, number, boolean)兼容测试
47+
func testYapiBaseType() {
48+
let rawStr = """
49+
{"type":"object","title":"empty object","properties":{"data":{"type":"object","properties":{"stringValue":{"type":"string","description":"字符串类型","mock":{"mock":"字符串"}},"integerValue":{"type":"integer","description":"整型数据类型","mock":{"mock":"20"}},"numberValue":{"type":"number","description":"浮点数据类型","mock":{"mock":"15.5"}},"booleanValue":{"type":"boolean","description":"布尔类型","mock":{"mock":"true"}},"arrayValue":{"type":"array","items":{"type":"string","mock":{"mock":"数组字符串"}},"description":"数组类型"}},"required":["stringValue","integerValue","numberValue","booleanValue","arrayValue"]},"code":{"type":"string","mock":{"mock":"200"}}},"required":["data","code"]}
50+
"""
51+
let yapiObjc = helper(raw: rawStr)
52+
XCTAssertNotNil(yapiObjc)
53+
let stringObjct = yapiObjc!.childs.filter{ $0.key == "stringValue" }
54+
XCTAssert(stringObjct.last!.type.swiftType() == "String")
55+
let integerObjct = yapiObjc!.childs.filter{ $0.key == "integerValue" }
56+
XCTAssert(integerObjct.last!.type.swiftType() == "Int")
57+
let numberObjct = yapiObjc!.childs.filter{ $0.key == "numberValue" }
58+
XCTAssert(numberObjct.last!.type.swiftType() == "Double")
59+
let booleanObjct = yapiObjc!.childs.filter{ $0.key == "booleanValue" }
60+
XCTAssert(booleanObjct.last!.type.swiftType() == "Bool")
61+
}
62+
63+
/// 测试type 为非 Java基本类型,包含不规范基本数据(String, Integer)和其他自定义类型(Date, Other)
64+
func testOtherType() -> Void {
65+
let rawStr = """
66+
{"type":"object","title":"empty object","properties":{"data":{"type":"object","properties":{"StringValue":{"type":"String","description":"字符串类型","mock":{"mock":"字符串"}},"IntegerValue":{"type":"Integer","description":"整型数据类型","mock":{"mock":"20"}},"DateValue":{"type":"Date","description":"日期类型","mock":{"mock":"2020年08月01日"}},"OtherValue":{"type":"Other","description":"其他任意类型","mock":{"mock":"any"}},"arrayValue":{"type":"array","items":{"type":"string","mock":{"mock":"数组字符串"}},"description":"数组类型"}},"required":["stringValue","integerValue","numberValue","booleanValue","arrayValue"]},"code":{"type":"string","mock":{"mock":"200"}}},"required":["data","code"]}
67+
"""
68+
let yapiObjc = helper(raw: rawStr)
69+
XCTAssertNotNil(yapiObjc)
70+
let stringObjct = yapiObjc!.childs.filter{ $0.key == "StringValue" }
71+
XCTAssert(stringObjct.last!.type.swiftType() == "String")
72+
let integerObjct = yapiObjc!.childs.filter{ $0.key == "IntegerValue" }
73+
XCTAssert(integerObjct.last!.type.swiftType() == "Int")
74+
let numberObjct = yapiObjc!.childs.filter{ $0.key == "DateValue" }
75+
XCTAssert(numberObjct.last!.type.swiftType() == "<#Undefined#>" && numberObjct.last!.typeRaw == "Date")
76+
let booleanObjct = yapiObjc!.childs.filter{ $0.key == "OtherValue" }
77+
XCTAssert(booleanObjct.last!.type.swiftType() == "<#Undefined#>" && booleanObjct.last!.typeRaw == "Other")
78+
}
79+
80+
func helper(raw: String) -> YApiObject? {
81+
let helper = YApiHelper(paste: raw)
82+
helper.aimPath = "data"
83+
return helper.pathObject
4284
}
4385

4486
}

0 commit comments

Comments
 (0)