我只想包含另一个文件中的Swift类,比如它的test
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel { }
PrimeNumberModelTests.swift
import XCTest
import PrimeNumberModel // gives me "No such module 'PrimeNumberModel'"
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel() // "Use of unresolved identifier 'PrimeNumberModel'"
}
这两个swift文件都在同一个目录中。
发布于 2014-06-05 02:56:28
我也有同样的问题,在我的XCTestCase
文件中,但不是在常规的项目文件中。
要摆脱:
无法解析的标识符'PrimeNumberModel‘的
用法
我需要在import
文件中测试基本模块。在我的例子中,我的目标项目名为'myproject‘,我添加了import myproject
,这个类被识别出来了。
发布于 2014-08-25 09:26:45
更新Swift 2.x、3.x、4.x和5.x
现在您不需要将public
添加到要测试的方法中。在较新版本的Swift中,只需要添加@testable
关键字。
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
而且你的内部方法可以保持Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
请注意,即使使用@testable
,private
(和fileprivate
)符号也不可用。
Swift 1.x
这里有两个来自Swift的相关概念(如Xcode6beta6)。
Swift
考虑到测试是在PrimeNumberModelTests.swift
上的另一个目标上进行的,您需要对包含要测试的类的目标执行import
操作,如果您的目标名为MyProject
,则需要将import MyProject
添加到PrimeNumberModelTests
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
但是这还不足以测试您的类PrimeNumberModel
,因为默认的访问控制级别是Internal Access
,所以您的类对于测试包是不可见的,因此您需要将其设置为Public Access
以及您想要测试的所有方法:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}
发布于 2014-06-04 13:50:59
https://stackoverflow.com/questions/24029781
复制相似问题