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