swift - 奇怪的编译器错误 : 'expectation' produces 'XCTestExpectation' , 不是预期的上下文结果类型 'XCTestExpectation'

标签 swift xcode xctest

我正在尝试测试将运行多次的异步代码,并尝试为模拟的用户输入提前创建单独的期望。我正在尝试使用一个结构,该结构将位于一个数组中,然后异步函数和主测试函数都可以访问该结构。

虽然下面的代码会产生一个我以前从未见过的编译错误,而且谷歌似乎也没有

struct TestAsyncUserInput<T> {
    var value : T
    var expect : XCTestExpectation

    init (value : T) {
        self.value = value
        self.expect = expectation(description: "a random expectation")
    }
}

self.expect 显示此编译器错误: “expectation”产生“XCTestExpectation”,而不是预期的上下文结果类型“XCTestExpectation”

我在 Xcode 10 和 Swift 4.2 上

虽然有不同的解决方法,但我更关心这个编译器错误是什么以及它为什么会发生?

更新:这是错误的屏幕截图

Compiler error screenshot

为了更好地衡量期望函数的定义

open func expectation(description: String) -> XCTestExpectation

最佳答案

这个有效:

struct TestAsyncUserInput<T> {
    var value : T
    var expect : XCTestExpectation

    init (value : T) {
        self.value = value
        self.expect = XCTestExpectation(description: "a random expectation")
    }
}

关于swift - 奇怪的编译器错误 : 'expectation' produces 'XCTestExpectation' , 不是预期的上下文结果类型 'XCTestExpectation',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142428/

相关文章:

ios - 以编程方式使用 UIPickerView 文本设置 UITextField 文本

swift - XlsxReaderWriter 可以使用 Swift 保存我的 BRAOfficeDocumentPackage

ios - 获取用户位置

swift - 是否可以将 MacOS 应用程序从 Xcode 项目添加到 Launchpad?

ios - 选定行复选标记颜色更改

ios - XCUITest如何访问tableView表头

ios - 我们需要为登录编写 UI 测试用例吗?

ios - 奇怪的行为 CGAffineTransform

ios - 过渡到子 UINavigationController 时奇怪的导航栏动画

core-data - 为什么在使用 Swift 的 XCTest 下运行时 executeFetchRequest 不返回子类对象?