Asi*_*waz 0 unit-testing code-coverage ios swift
我正在尝试快速进行单元测试。MyFileManager我有一个名为和的两类SomeViewModel
class MyFileManager {
static let shared = MyFileManager()
func isStored(atPath path: String) -> Bool {
return FileManager.default.fileExists(atPath: path)
}
func readData(atPath path: String) -> Data? {
return try? Data(contentsOf: URL(fileURLWithPath: path))
}
}
class SomeViewModel {
func getCachedData() -> Data? {
let path = "xxxxx"
if MyFileManager.shared.isStored(atPath: path) {
return MyFileManager.shared.readData(atPath: path)
} else {
return nil
}
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一个测试代码。我不确定这段代码是否会给我 100% 的代码覆盖率。这是单元测试
class LinePhoneTests: XCTestCase {
override func setUpWithError() throws {
testGetCachedData()
}
func testGetCachedData() {
let viewModel = SomeViewModel()
let data = viewModel.getCachedData()
XCTAssertFalse((data != nil))
XCTAssertTrue((data == nil))
}
}
Run Code Online (Sandbox Code Playgroud)
如何获取代码覆盖率信息?
您可以采取一些措施来监视代码覆盖率,以帮助您编写测试。
打开方案中的代码覆盖率设置:
打开此菜单项:
然后在源文件中,您将在角落看到一个装订线:它将向您显示一个数字,指示执行此行的测试数量,并以红色显示尚未执行的行。
您可以在构建结果中的代码覆盖率下看到百分比:
使用这些工具,您可以编写测试来练习您需要达到 100% 的代码路径,或者您可以判断错过的测试是否重要。
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |