我遇到了一个奇怪的问题,之前从未遇到过。
当你按下cmd+U运行单元测试(例如OCUnit),它是否实际上调用main.m,新建appDelegate并像按下cmd+R一样运行应用程序?
我之所以问这个问题,是因为我正在DataLayer中使用CoreData。我在我的测试中成功模拟了DataLayer,但是一旦我实现了一个实际调用CoreData的getAll方法,应用程序/Xcode就会抛出关于托管对象模型不能为空的异常。我理解为什么会这样,但我并不想真正地新建DataLayer类,并且我已经在mainviewcontroller的loadView方法中放置了一个断点,它正在调用DataLayer的getAll方法。由于这是一个模拟对象,因此在测试中应该没有关系,但显然它正在调用真实实例。
那么回到我的问题,按下cmd+U后,它是否先运行应用程序再运行测试?