我在 Xcode 中的代码覆盖率报告中遇到问题。
从这个截图中你可以看到:
在左侧选项卡上,第 58 行从断点“触及”,在右侧选项卡上,测试通过。在右侧选项卡上,我仅运行第 37 行的测试。
为什么 Xcode 将第 58 行标记为红色,因为未覆盖?
第 53 行没有被“触及”(如果我在那里设置断点)。
使用 SQLite 作为数据库。
整个项目可用here https://github.com/DanielZanchi/Internship-SwiftTDD.
EDIT:添加代码:
测试.swift
func testAddFuelFail() {
fuelsManager.dropTable()
XCTAssertEqual(addFuel(), -1)
}
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
}