HSUIAutomationCheat 0.0.6

HSUIAutomationCheat 0.0.6

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最新发布2015年11月

Confused Vorlon 维护。



  • Rob

已弃用

版本 1.0 使用UITesting - 因此这不再适用。

无需痛苦地使用 UIAutomation

Snapshot 真是棒极了。

然而它使用的是 Apple 的 UIAutomation,这是一个脆弱且痛苦的框架(还有另一件事要学习)。

如果您想为 Snapshot 驱动您的应用 - 并且不在乎 UIAutomation 是否合适,那么这个类就是为您准备的。

注意:这并不是“真正的”UIAutomation。这不是测试您代码的方法,而是向您简单地脚本化应用以生成截图。

使用方法

  1. 如 Snapshot 文档中所述,请确保您已定义 SNAPSHOT 为真。

    例如,在您的 Snapfile 中

    custom_build_args "GCC_PREPROCESSOR_DEFINITIONS='$(inherited) SNAPSHOT=1'"
    

    或者使用前缀文件并

    #define SNAPSHOT true
    
  2. 在您的 App Delegate 中安装帮助器

    这将在您的主窗口视图背后安装一个 1 像素的文本字段。UIAutomation 可以然后更改文本字段以触发通知。

    #import <HSUIAutomationCheat/HSUIAutomationCheat.h>
    
    (and then in application:didFinishLaunchingWithOptions:)
    
    #ifdef SNAPSHOT
    
        [HSUIAutomationCheat installForWindow:mainWindow];
    
    #endif
    
  3. 将一个额外的帮助函数添加到 SnapshotHelper.js 中

    function sendNotification(name) {

    UIATarget.localTarget().frontMostApp().windows()["SNAPSHOT_WINDOW"].textFields()["SNAPSHOT_FIELD"].setValue(name);

    }

  4. 从您的 snapshot.js 发送通知

    在任何 snapshot.js 中,您都可以向您的应用发送一个通知

    sendNotification("SnapDisplayMyScreen");
    
  5. 在您的应用中响应通知

    在您的应用中,一个名为 @"SnapDisplayMyScreen" 的标准 NSNotification 会被广播。

    您可以使用 SNAPSHOT 定义来通过自定义代码处理此事件

    #ifdef SNAPSHOT
    
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(doSomething:)
                                                     name:@"SnapDisplayMyScreen" 
                                                   object:nil];
    
    #endif
    

安装

使用 CocoaPods 进行安装

pod 'HSUIAutomationCheat', '~> 0.0'

或者下载该类并将其添加到您的项目中。