Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用XCTest检查变量是否为数组_Ios_Arrays_Swift_Xcode_Xctest - Fatal编程技术网

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

Ios 使用XCTest检查变量是否为数组,ios,arrays,swift,xcode,xctest,Ios,Arrays,Swift,Xcode,Xctest,如何知道变量返回函数是否为数组?例子: 在我的演示者中,我有以下功能: func filterGnomosForName(name:String) -> [Gnomo]{ let res = listGnomos.filter { ($0.name?.lowercased().contains(name.lowercased()))!} return res } func testFilterGnomo(){ let result = listPrese

如何知道变量返回函数是否为数组?例子: 在我的演示者中,我有以下功能:

 func filterGnomosForName(name:String) -> [Gnomo]{
    let res = listGnomos.filter { ($0.name?.lowercased().contains(name.lowercased()))!}
    return res
}
    func testFilterGnomo(){
    let result = listPresenter.filterGnomosForName(name: "Nam")
    XCTAssert(result == [Gnomo])
}
MyTestClass I具有以下测试功能:

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

Gnomo是数组中的一个类型对象,但只想知道它是数组还是非数组,以了解函数是否正确,请帮助我

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

XCTAssert((object as Any) is Array)
我以前没有断言过数组,但我认为上面的方法可以工作

以下是我刚刚在Swift游乐场创建的一个示例:

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()

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

XCTAssert((object as Any) is Array)
我以前没有断言过数组,但我认为上面的方法可以工作

以下是我刚刚在Swift游乐场创建的一个示例:

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()

如果您先将其强制转换为
Any
,则不会。我已经在我的答案中添加了一些示例代码来展示一个工作示例。如果您先将其转换为
Any
,则不会。我已经在我的答案中添加了一些示例代码,以显示一个工作示例。