JPSimulatorHacks 1.4.2

JPSimulatorHacks 1.4.2

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2017年7月

Johannes Plunien 维护。



  • Johannes Plunien

描述

在测试中黑掉您的模拟器(授予访问相册、通讯录、日历...)。

您是否遇到过代码中包含了 AddressBookEventKitALAssetsLibrary API 的问题?在这种情况下,运行测试可能会很烦人。有一个 UIAlertView 会提示用户授予对通讯录和照片的访问权限,这会阻塞并破坏您的测试。使用 JPSimulatorHacks,您可以在运行测试之前轻松地授予这些访问权限。

如果您遇到任何问题,请查阅下面的 注意事项

安装

使用 CocoaPods 安装 JPSimulatorHacks

pod 'JPSimulatorHacks'

用法

通讯录

#import <JPSimulatorHacks/JPSimulatorHacks.h>

@implementation MyAppTests

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks grantAccessToAddressBook];
}

@end

这将授予当前包标识符对地址簿的访问权限。如果有必要,还有一个 API 可以指定包标识符

+ (BOOL)grantAccessToAddressBookForBundleIdentifier:(NSString *)bundleIdentifier;

日历

#import <JPSimulatorHacks/JPSimulatorHacks.h>

@implementation MyAppTests

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks grantAccessToCalendar];
}

@end

这将授予当前包标识符对日历的访问权限。如果有必要,还有一个 API 可以指定包标识符

+ (BOOL)grantAccessToCalendarForBundleIdentifier:(NSString *)bundleIdentifier;

HomeKit

#import <JPSimulatorHacks/JPSimulatorHacks.h>

@implementation MyAppTests

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks grantAccessToHomeKit];
}

@end

这将授予当前包标识符对 HomeKit 的访问权限。如果有必要,还有一个 API 可以指定包标识符

+ (BOOL) grantAccessToHomeKitForBundleIdentifier:(NSString *)bundleIdentifier;

照片

#import <JPSimulatorHacks/JPSimulatorHacks.h>

@implementation MyAppTests

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks grantAccessToPhotos];
}

@end

这将授予当前包标识符对照片库的访问权限。如果有必要,还有一个 API 可以指定包标识符

+ (BOOL)grantAccessToPhotosForBundleIdentifier:(NSString *)bundleIdentifier;

您还可以从指定的 URL 添加一些测试图像。该方法将阻塞直到资源被存储。这对于确保您的测试在资源可用后才开始是有帮助的。

[JPSimulatorHacks grantAccessToPhotos];
NSURL *assetURL = [NSURL URLWithString:@"https://raw.githubusercontent.com/plu/JPSimulatorHacks/master/Data/test.png"];
ALAsset *asset = [JPSimulatorHacks addAssetWithURL:assetURL];

通讯录(iOS 9)

这将授予 iOS 9 附带的新的通讯录框架的权限。

#import <JPSimulatorHacks/JPSimulatorHacks.h>

@implementation MyAppTests

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks grantAccessToContacts];
}

@end

超时

默认情况下,它会在15秒内尝试将必要的条目写入到TCC.db中。如果时间不足,它就会放弃并从方法中返回NO。如果因为这个原因时间不足,您可以通过以下方式更改此默认超时:

+ (void)setUp
{
    [super setUp];
    [JPSimulatorHacks setTimeout:30.0f];
}

注意事项

  • JPSimulatorHacks仅在针对真实的应用程序目标运行单元测试套件时工作:其Host Application 设置为None!参见:[http://stackoverflow.com/a/28135995/598057](http://stackoverflow.com/a/28135995/598057)
  • 当使用Xcode机器人时,有时测试会遇到超时。
  • 键盘助手已在1.3.0版本中删除。

许可证(MIT)

版权(C)2014 Johannes Plunien

允许任何获得本软件和相关文档文件(“软件”)副本的人免费使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许将软件提供给其他人使用,前提是遵守以下条件:

上述版权声明和本许可声明应包括在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的质量保证,无论是明示的还是暗示的,包括但不限于对适销性、针对特定目的的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何主张、损害或其他责任承担责任,无论是否属于合同、侵权或其他行为,从、因或与软件或软件的使用或其他交易有关。