小编Rob*_*ins的帖子

"设置配置文件生成失败"

当我尝试运行UI测试时,Xcode 7.3.1给出了这个错误:

在此输入图像描述

案文是:

Setting up profile generation failed

Xcode could not generate profile information for bundle identifier (com.apple.test.XXXXXXXXUITests-Runner). The profile path was missing. The environment variables were valid.
Run Code Online (Sandbox Code Playgroud)

有谁知道可能导致这个或如何解决它?

xcode xcode7 xcode-ui-testing

7
推荐指数
0
解决办法
468
查看次数

使用addUIInterruptionMonitor()清除XCUITest中的SFAuthenticationSession警报

有没有人成功地用于addUIInterruptionMonitor清除所产生的警报start()荷兰国际集团的SFAuthenticationSession运行XCUITest时?

我不能让它在Xcode 9.1/iOS 11.1.1(模拟器或设备)上工作.该标准建议(建立处理,并随后与设备交互出现的警告之前)没有帮助.

测试记录器说app.alerts.firstMatch.buttons["Continue"]).tap()应该做的伎俩,但这也不起作用.来自另一个SO答案的这种技术有时会起作用,但对CI不一致.

所以我想知道"官方"解决方案是否适用于任何人.

ios xcode-ui-testing sfauthenticationsession xcuitest

7
推荐指数
1
解决办法
503
查看次数

如何使特定URL的iOS缓存无效?

使用NSURLSession默认缓存,如何使特定URL的缓存无效?

我注意到NSURLCacheremoveCachedResponseForRequest:方法,但这需要一个NSURLRequest对象,我没有原始请求.我是否需要在创建它们时存储它们,以便我可以将它们传回,removeCachedResponseForRequest:或者我可以创建一个具有相应URL的新URL,即使它没有相同的标题也将用作相应的URL.字段和其他属性作为原始?

caching nsurlcache ios nsurlsession

6
推荐指数
2
解决办法
5521
查看次数

如何从通用函数调用Swift协议上的静态属性?

鉴于此代码:

public protocol Selectable {

    typealias T

    var selected: Bool { get }

    static var defaultValue: T { get }

}

public func selected<T: Selectable>(items: [T]) -> T {
    if let selected = items.filter({$0.selected}).first {
        return selected
    }
    return T.defaultValue
}
Run Code Online (Sandbox Code Playgroud)

我在返回行上出错:"无法将'TT'类型的返回表达式转换为预期的返回类型'T'".

改变它return T.defaultValue as! T似乎工作,但这对我没有任何意义.我错过了什么或者我应该提交雷达吗?

generics swift

6
推荐指数
1
解决办法
3199
查看次数

不能在Xcode 7 UI测试目标中包含Objective-C .framework吗?

我试图依靠OHHTTPStubs作为一个框架,来自Xcode 7中的Swift UI测试目标.

我构建了.framework(通过Carthage,但我不确定它是否相关?)并将其拖入UI测试目标的Build Phases选项卡下的"带库的链接二进制文件"部分.

但是当我尝试@import OHHTTPStubs在我的.swift测试用例中时,Xcode告诉我No such module 'OHHTTPStubs'.

这应该很简单,我错过了什么?这是Github上的项目.

ios ios-frameworks carthage xcode7 xcode-ui-testing

6
推荐指数
0
解决办法
955
查看次数

如何在Swift 3中将__NSMallocBlock__转换为其基础类型?

我有一个技巧来帮助测试UIAlertController在Swift 2.x中工作:

extension UIAlertController {

    typealias AlertHandler = @convention(block) (UIAlertAction) -> Void

    func tapButtonAtIndex(index: Int) {
        let block = actions[index].valueForKey("handler")
        let handler = unsafeBitCast(block, AlertHandler.self)

        handler(actions[index])
    }

}
Run Code Online (Sandbox Code Playgroud)

这在Swift 3.x下失败了fatal error: can't unsafeBitCast between types of different sizes,这诱使我相信可能有一种方法可以让演员工作.任何人都可以搞清楚吗?

casting unsafe-pointers swift swift3

6
推荐指数
2
解决办法
1313
查看次数

如何在 Hibernate 中映射 BigDecimal 以便返回与输入相同的比例?

在 Java 中,new BigDecimal("1.0") != new BigDecimal("1.00")规模很重要

然而,这显然不适用于 Hibernate/SQL Server。如果我将 BigDecimal 上的比例设置为特定值,通过 Hibernate 将 BigDecimal 保存到数据库,然后重新膨胀我的对象,我会返回一个具有不同比例的 BigDecimal。

例如,值 1.00 返回为 1.000000,我假设是因为我们将 BigDecimals 映射到定义为的列 NUMERIC(19,6)。我不能只将列定义为所需的比例,因为我需要将美元和日元值(例如)存储在同一列中。我们需要在数据库中将 BigDecimal 表示为数字类型,以便外部报告工具使用。

是否存在“正确”映射 BigDecimal 的 Hibernate UserType,还是我必须自己编写?

java sql-server hibernate bigdecimal hibernate-mapping

5
推荐指数
1
解决办法
2万
查看次数

在单元测试中对UIImage进行断言的最佳方法是什么?

假设我正在为tableView:cellForRowAtIndexPath:视图控制器上的委托方法编写单元测试。根据我传入的索引路径,此方法可以返回几个不同的单元配置。

我可以轻松地断言该cell.textLabel.text属性。但是,如何断言该cell.imageView.image属性包含正确的图像?图像或imageView都不具有(公共API)属性,我可以使用这些属性来查找图像名称或文件名。

我想出的最好办法是创建最小的有效.png(使用它,[UIImage imageWithData:]以便在单元测试中不要碰到磁盘),并断言从中获得的字节数组cell.imageView.image是我期望的字节数组。我创建了一个OCHamcrest匹配器,以使其变得更好一点,但这是一种不令人满意且不灵活的方法。

有谁有更好的主意?

unit-testing objective-c ios ocmockito

5
推荐指数
1
解决办法
2000
查看次数

哪种形式的Objective-C init方法更受欢迎?

到目前为止,我已经看到它做了三种方式:

1:

- (instancetype)init
{
    self = [super init];
    if (self) {
        // ...
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

2:

- (instancetype)init
{
    if (self = [super init]) {
        // ...
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

3:

- (instancetype)init
{
    if ((self = [super init]) == nil)
        return nil;
    // ...
    return self;
}
Run Code Online (Sandbox Code Playgroud)

哪种形式更具惯用性Objective-C?

idiomatic objective-c

4
推荐指数
1
解决办法
2367
查看次数

如何为仅在测试中可见的结构创建 init 方法?

我想为我的结构创建一个 init 方法,其中包含一堆用于单元测试的默认值。我不希望主模块能够看到这个 init 方法。

我以为我可以简单地在我的测试类文件中创建结构的扩展,但这不起作用:

Foo.swift(在应用程序目标中):

public struct Foo {

    public let bar: Int

    public init(colour: String) {
        self.bar = colour == "Green" ? 0 : 1
    }

}
Run Code Online (Sandbox Code Playgroud)

FooExtension.swift(在测试目标中):

extension Foo {

    public init(bar: Int = 42) {
        self.bar = bar
    }

}
Run Code Online (Sandbox Code Playgroud)

请注意主文件中的非默认初始化程序,因此 Swift 编译器不会自动为我创建成员初始化程序。也许这与问题有关,也许不是。

Swift 编译器抱怨Cannot assign to 'bar' in 'self'。但是当我将该 init 方法复制到Foo我的主要目标中结构的原始定义中时,它工作正常。无论是否使用默认参数值,我都会得到相同的结果。

这是一个 Swift 编译器错误还是与在一个模块中为另一个定义的结构定义扩展有关?当我尝试在 Playground 中复制它时,一切正常。

我使用 Swift 1.2 和 Xcode 版本 6.4 (6E35b)

swift swift-extensions

4
推荐指数
1
解决办法
1506
查看次数