但是在Xcode7上不能正常运行,所以我又改回原始版本。
  如果你想在单元测试外部使用 XCTest 该怎么办,例如 UI 测试?为了取代为 XCTestCase 做的测试,你可以设置一个环境变量,通过 getenv 来测试。
  提供 TestingAppDelegate
  这里需要创建一个 TestingAppDelegate 类。正如下面代码所示:
  TestingAppDelegate.h
  #import <UIKit/UIKit.h>
  @interface TestingAppDelegate : UIResponder <UIApplicationDelegate>
  @property (nonatomic, strong) UIWindow *window;
  @end
  TestingAppDelegate.m
  #import "TestingAppDelegate.h"
  @implementation TestingAppDelegate
  @end
  正如你所看到的那样,不要做任何事。
  (在早先的 iOS 版本中,我必须添加更多的代码,导致 TestingAppDelegate 会创建一个 window,给这个 window 设置一个不做任何事情的根视图,然后让其可见。现在看来没必要了。)
  快速反馈的本质
  重要的事情是我们已经从本质上减少了测试过程中启动应用的步骤。尽管还有一些不必要的开销,但是并不多。这是实现快速反馈过程中重要的一步,这样我们可以从 TDD 中获得更多。
  甚至当你开始一个新的项目,我推荐尽早使用这样的方法,因为你真正的app delegate终会变得日益庞大。让我们在襁褓中阻止这种问题,然后保持快速的反馈。
  另外一个好处是,通过完全控制哪部分该测试,什么时候测试,我们现在可以编写跟生产环境的app delegate完全不同的单元测试。这显然是双赢的。