【发布时间】:2015-11-05 05:13:50
【问题描述】:
我正在尝试测试其中包含 try-catch 的方法,但测试没有继续,并且未考虑 catch 块。
假设我们有这个:
class Foo
{
func fetchData(request: NSFetchRequest) -> [AnyObject]?
{
var data: [AnyObject]? = nil
do {
data = try context.executeFetchRequest(request)
} catch {}
return data
}
func fetchData(entity: String, predicate: NSPredicate?) -> [AnyObject]?
{
let entity = NSEntityDescription.entityForName(entity, inManagedObjectContext: context)
let request = NSFetchRequest()
request.entity = entity
request.predicate = predicate
return fetchData(request)
}
}
class SampleTests: XCTestCase
{
// Assume that entity 'Employee' does not exist in the core data model
func testFetchDataWithNonExistingEntity()
{
let foo = Foo()
let predicate = NSPredicate(format: "id == %i", 22345)
let data = foo.fetchData("Employee", predicate: predicate)
XCTAssertNil(data, "Data should be nil.")
}
}
测试在data = try context.executeFetchRequest(request)停止。
【问题讨论】:
-
它编译了吗?您使用一个参数定义了函数 fetchData,而不是使用两个参数调用相同的函数。你的例子有问题
-
@user3441734 这叫做函数重载,仅供参考。
-
啊哈,对不起,你有两个版本:-)。行数据中的执行停止(崩溃) = .... ?