Mole 1.0.2

Mole 1.0.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2016 年 5 月
SPM支持 SPM

Hilton Campbell 维护。



Mole 1.0.2

  • 作者
  • Hilton Campbell

Mole

Xcode 的 UI 测试是黑盒设计的。这是绕过这一点的解决方案。

安装

通过添加以下内容到您的 Podfile 中使用 CocoaPods 进行安装

use_frameworks!

pod 'Mole'

请确保将 Mole 添加到您的应用程序和 UI 测试目标中。然后运行

pod install

用法

在您的应用程序目标中创建一个服务器类。注册您希望 UI 测试目标能够调用的方法

import Mole

class AppServer {
    private let server = MoleServer()

    init() {
        server["upgraded"] = { _ in
            return ProductController.sharedController.upgraded
        }

        server["setUpgraded"] = { args in
            if let args = args as? [String: Bool], upgraded = args["upgraded"] {
                ProductController.sharedController.upgraded = upgraded
            }

            return nil
        }
    }
}

然后,在您的 UI 测试目标中创建一个代理类,其中包含与服务器类中的方法相对应的代理方法

import Mole

class AppProxy {
    private let client = MoleClient()

    func upgraded() -> Bool {
        return client.invokeMethod("upgraded") as? Bool ?? false
    }

    func setUpgraded(upgraded: Bool) {
        client.invokeMethod("setUpgraded", parameters: ["upgraded": upgraded])
    }
}

现在您可以从 UI 测试中调用代理类上的方法

class Tests: XCTestCase {
    func testUpgrade() {
        let appProxy = AppProxy()
        appProxy.setUpgraded(true)
        XCTAssertTrue(appProxy.upgraded())
    }
}

许可证

Mole 根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE。