Dan*_*182 5 xcode code-coverage xctest swift
我在Xcode的代码覆盖率报告中遇到问题。从此屏幕截图中可以看到:
在左边的选项卡上,从断点“触碰”了第58行,在右边的选项卡上,测试通过了。在右侧选项卡上,我仅在第37行运行测试。
为什么Xcode用红色标记58行(未覆盖)?
第53行未“触及”(如果我在此处设置了断点)。使用SQLite作为数据库。
整个项目可以在这里找到。
编辑:添加代码:
测试快速
func testAddFuelFail() {
fuelsManager.dropTable()
XCTAssertEqual(addFuel(), -1)
}
Run Code Online (Sandbox Code Playgroud)
FuelsManager.swift
func addFuel(dateOfFuel: Date, mileageOnSave: Int, quantityOfFuel: Double, pricePerUnitOfFuel: Double) -> Int64 {
let insertFuel = fuelsTable.insert(date <- dateOfFuel, mileage <- mileageOnSave, quantity <- quantityOfFuel, pricePerUnit <- pricePerUnitOfFuel)
do {
let id = try database!.run(insertFuel)
return id
} catch {
print(error)
}
return -1
}
Run Code Online (Sandbox Code Playgroud)