如何为 AppDelegate 编写单元测试?

How to write unit tests for the AppDelegate?

我在 applicationDidFinishLaunchingWithOptions 内的应用程序委托(主要针对 CoreData)中进行了大量设置。很好奇我将如何在 appDelegate 中测试代码?谢谢

将功能移动到更小的功能或其他 class 您可以测试的功能中。

如果您将内容保存在 App Delegate class 中,您可以通过正常方式访问它们,因为单元测试链接到应用程序并且应用程序实际上是 运行。但是您不能调用 applicationDidFinishLaunchingWithOptions 并期望它起作用。它将在开始时由 iOS 正常调用。

第一步:在测试期间停止使用常规应用程序委托。这避免了 "it will be called at launch" 问题,并且可能还会加快您的测试。参见 https://qualitycoding.org/ios-app-delegate-testing/

第二步:既然您的常规应用程序委托在测试启动时未被调用,直接从测试中调用它的方法。