ios - 使用 XCTest 检查变量是否为数组

标签 ios arrays swift xcode xctest

如何知道变量返回函数是不是数组?例子: 在我的 Presenter 中,我有这个功能:

 func filterGnomosForName(name:String) -> [Gnomo]{
    let res = listGnomos.filter { ($0.name?.lowercased().contains(name.lowercased()))!}
    return res
}

而 MyTestClass 我有这个测试功能:

    func testFilterGnomo(){
    let result = listPresenter.filterGnomosForName(name: "Nam")
    XCTAssert(result == [Gnomo])
}

Gnomo 是数组中的类型对象,但只想知道它是否是数组,以了解函数是否正确,帮帮我?

最佳答案

当我断言一个对象类型时,我这样做:

XCTAssert((object as Any) is Array)

我之前没有断言过数组,但我认为上面的方法可行。

这是我刚刚在 Swift Playground 中创建的示例:

import UIKit
import XCTest

class MyTestClass: XCTestCase {

    func testSomething() {
        let myArray: [String] = ["foo", "bar"]

        XCTAssert((myArray as Any) is String) // Fails
        XCTAssert((myArray as Any) is [String]) // Passes
    }
}

MyTestClass.defaultTestSuite().run()

关于ios - 使用 XCTest 检查变量是否为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957598/

相关文章:

ios - 显示一个开发者/公司的所有应用

iphone - 从 UIPageViewController 卸载 viewController

swift - Firestore - Swift 子集合

ios - 从 UITableViewCell 清除 Firebase 观察结果

ios - 将标题添加到 UIPickerView

javascript - URL 中具有多个值的变量

javascript - 数组被覆盖

c++ - 为什么声明足够大小的 2D 数组会在 Linux 上导致段错误,而在 macOS 上不会?

swift - 如何以编程方式编写 func..(对于续集 : UIStoryboardSeque, 发件人 : Any?)

ios - Xcode 7.2 <未知> :0: error: unexpected input file: (path to file)/Main. Storyboard