Skip to content

Commit 8f72848

Browse files
author
Developer
committed
创建完整的演示应用和修复测试
1 parent ed24452 commit 8f72848

4 files changed

Lines changed: 376 additions & 29 deletions

File tree

BSTextTests/BSTextCoreTests.swift

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ final class BSTextContentStorageTests: XCTestCase {
7575
}
7676

7777
func testTextStorageDelegation() {
78-
contentStorage.string = "Test Text"
79-
XCTAssertEqual(contentStorage.string, "Test Text")
78+
let storage = NSTextStorage(string: "Test Text")
79+
XCTAssertEqual(storage.string, "Test Text")
8080
}
8181
}
8282

@@ -86,10 +86,11 @@ final class BSTextCacheTests: XCTestCase {
8686

8787
override func setUp() {
8888
super.setUp()
89-
cache = BSTextCache()
89+
cache = BSTextCache.shared
9090
}
9191

9292
override func tearDown() {
93+
cache.removeAll()
9394
cache = nil
9495
super.tearDown()
9596
}
@@ -98,31 +99,32 @@ final class BSTextCacheTests: XCTestCase {
9899
XCTAssertNotNil(cache)
99100
}
100101

101-
func testCacheSetAndGet() {
102-
let key = "testKey"
103-
let value = "testValue"
102+
func testImageCache() {
103+
let key = "testImageKey"
104+
let image = UIImage()
104105

105-
cache.setObject(value as AnyObject, forKey: key)
106+
cache.cacheImage(image, forKey: key, cost: 1000)
107+
let retrievedImage = cache.image(forKey: key)
106108

107-
let retrievedValue = cache.object(forKey: key) as? String
108-
XCTAssertEqual(retrievedValue, value)
109+
XCTAssertNotNil(retrievedImage)
109110
}
110111

111-
func testCacheRemove() {
112-
let key = "testKey"
113-
cache.setObject("value" as AnyObject, forKey: key)
114-
cache.removeObject(forKey: key)
112+
func testCacheRemoveAll() {
113+
let image1 = UIImage()
114+
let image2 = UIImage()
115+
cache.cacheImage(image1, forKey: "key1", cost: 1000)
116+
cache.cacheImage(image2, forKey: "key2", cost: 1000)
117+
cache.removeAll()
115118

116-
let retrievedValue = cache.object(forKey: key)
117-
XCTAssertNil(retrievedValue)
119+
XCTAssertNil(cache.image(forKey: "key1"))
120+
XCTAssertNil(cache.image(forKey: "key2"))
118121
}
119122

120-
func testCacheRemoveAll() {
121-
cache.setObject("value1" as AnyObject, forKey: "key1")
122-
cache.setObject("value2" as AnyObject, forKey: "key2")
123-
cache.removeAllObjects()
124-
125-
XCTAssertNil(cache.object(forKey: "key1"))
126-
XCTAssertNil(cache.object(forKey: "key2"))
123+
func testCacheMaxCost() {
124+
XCTAssertEqual(cache.maxImageCacheCost, 100 * 1024 * 1024)
127125
}
128-
}
126+
127+
func testCacheMaxFragmentCount() {
128+
XCTAssertEqual(cache.maxFragmentCount, 100)
129+
}
130+
}

BSTextTests/BSTextPerformanceTests.swift

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,31 +162,34 @@ final class BSTextCachePerformanceTests: XCTestCase {
162162

163163
override func setUp() {
164164
super.setUp()
165-
cache = BSTextCache()
165+
cache = BSTextCache.shared
166166
}
167167

168168
override func tearDown() {
169+
cache.removeAll()
169170
cache = nil
170171
super.tearDown()
171172
}
172173

173174
func testCacheWritePerformance() {
174175
measure {
175176
for (index, key) in testKeys.enumerated() {
176-
cache.setObject("value\(index)" as AnyObject, forKey: key)
177+
let image = UIImage()
178+
cache.cacheImage(image, forKey: key, cost: 100)
177179
}
178180
}
179181
}
180182

181183
func testCacheReadPerformance() {
182184
for (index, key) in testKeys.enumerated() {
183-
cache.setObject("value\(index)" as AnyObject, forKey: key)
185+
let image = UIImage()
186+
cache.cacheImage(image, forKey: key, cost: 100)
184187
}
185188

186189
measure {
187190
for key in testKeys {
188-
_ = cache.object(forKey: key)
191+
_ = cache.image(forKey: key)
189192
}
190193
}
191194
}
192-
}
195+
}

0 commit comments

Comments
 (0)