【发布时间】:2013-03-20 19:56:03
【问题描述】:
我遇到了一个以前没有遇到过的奇怪问题。
当您使用 cmd+U 来运行单元测试(例如 OCUnit)时,它是否真的调用了 main.m、新的 appDelegate 并像您按了 cmd+R 一样运行应用程序?
我之所以这么问,是因为我在这个 DataLayer 后面使用了 CoreData。我在测试中成功地模拟了 DataLayer,但是一旦我实现了一个实际调用 CoreData 的 getAll 方法,app/xcode 就会抛出一个关于托管对象模型不能为 nil 的异常。我理解,但我并不是要真正新建 DataLayer 类,我在 mainviewcontroller loadView 方法中设置了一个断点,它调用 DataLayer getAll 方法。与测试无关,因为这是一个模拟对象,但它显然是在调用真实实例。
回到我的问题,当按下 cmd+U 时,它是否也先运行应用程序然后运行测试?
【问题讨论】:
标签: iphone ios xcode unit-testing