KIFViewControllerActions 1.0.2

KIFViewControllerActions 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布上次发布2017年2月

Blake WattersBlake WattersAndrew McKnight 维护。



  • 作者
  • Blake Watters

KIF的系统测试actor的功能测试UIViewControllers的行动

KIFViewControllerActions 是一个用于 KIF 的行动库,为功能测试 UIViewController 对象提供支持。它作为 KIFSystemTestActor 类的类别实现。

这些行动旨在提高测试之间的隔离性,并使尚未连接到用户界面的视图控制器能够进行测试。主要面向使用测试驱动开发过程并利用 KIF 作为开发工具的用户,而不仅仅将其作为验收测试工具使用。

API 概述

库中只有少数属性和方法。每个操作通过在 [UIApplication sharedApplication] 共享实例的 keyWindow 上替换 rootViewController 来实例化和展示视图控制器。支持基于代码和 Storyboard 的视图控制器。

  1. - (void)presentViewControllerWithClass:(Class)viewControllerClass withinNavigationControllerWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass configurationBlock:(void (^)(id viewController))configurationBlock - 在指定的 UINavigationController 实例中实例化和展示一个指定 UIViewController 子类的实例,具有指定的 UINavigationBarUIToolbar 子类,可选地将实例化控制器传递给代码块进行配置。
  2. - (void)presentViewControllerWithIdentifier:(NSString *)controllerIdentifier fromStoryboardWithName:(NSString *)storyboardName configurationBlock:(void (^)(UIViewController *viewController))configurationBlock - 从具有给定名称的 Storyboard 中实例化和展示视图控制器,可选地将实例化控制器传递给代码块进行配置。
  3. - (void)presentModalViewControllerWithIdentifier:(NSString *)controllerIdentifier fromStoryboardWithName:(NSString *)storyboardName configurationBlock:(void (^)(UIViewController *viewController))configurationBlock - 从具有给定名称的 Storyboard 中实例化和模态展示视图控制器,可选地将实例化控制器传递给代码块进行配置。
  4. defaultNavigationBarClass - 在实例化视图控制器时指定一个 UINavigationBar 子类。
  5. defaultToolbarClass - 在实例化视图控制器时指定一个 UIToolbar 子类。

示例用法

您可以通过 KIFTestCase 上的 system 属性访问 KIFSystemTestActor,例如

@interface MyViewControllerUITests : KIFTestCase

...

- (void)test
{
    [system presentViewControllerWithIdentifier:@"MyViewController"     
                         fromStoryboardWithName:@"MyStoryBoardName"     
                             configurationBlock:^(UIViewController *viewController) {    
        // Configure your view controller, e.g. by injecting mock data or a mock endpoint
        MyViewController *myViewController = (MyViewController *)viewController;
        ...
    }];

    [tester waitForViewWithAccessibilityLabel:@"my accessibility label"];
    [tester enterText:@"asdf" intoViewWithAccessibilityLabel:@"my accessibility label"];
}

联系信息

Blake Watters

许可协议

KIFViewControllerActions 在Apache 2许可协议下可用。有关更多信息,请参阅LICENSE文件。