如何简单地为测试切换App Delegate?
作者:Jon Reid 发布时间:[ 2016/10/19 11:01:25 ] 推荐标签:软件测试 App Delegate
但是在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完全不同的单元测试。这显然是双赢的。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com