Ios &引用;未解析标识符的使用“;及;类型的值没有成员“;使用@testable从XCTest开始
让我解释一下上下文。 我们的项目有1个框架目标和1个使用该框架的测试应用程序目标。所有逻辑和代码都进入框架,测试应用程序只导入框架。测试应用程序中不包含任何逻辑 下面是我的两个问题: 1。Xcode无法从我的XCTest类中找到我在框架目标中声明的类(SearchVC)。当我尝试从该类创建实例时,我得到了“使用未解析标识符”。但是,当从框架目标中的其他类生成实例时,我没有问题。事实上,我在另一个类(DashboardVC)中创建了一个属性(类型为SearchVC),我可以正确地访问和初始化它,这就引出了下一个问题 2。Xcode找不到我从XTest类(在DashboardVC中)创建的内部属性(类型为SearchVC)。我可以找到除此新属性之外的任何其他内部属性 需要考虑的事项:Ios &引用;未解析标识符的使用“;及;类型的值没有成员“;使用@testable从XCTest开始,ios,xcode,swift,xctest,Ios,Xcode,Swift,Xctest,让我解释一下上下文。 我们的项目有1个框架目标和1个使用该框架的测试应用程序目标。所有逻辑和代码都进入框架,测试应用程序只导入框架。测试应用程序中不包含任何逻辑 下面是我的两个问题: 1。Xcode无法从我的XCTest类中找到我在框架目标中声明的类(SearchVC)。当我尝试从该类创建实例时,我得到了“使用未解析标识符”。但是,当从框架目标中的其他类生成实例时,我没有问题。事实上,我在另一个类(DashboardVC)中创建了一个属性(类型为SearchVC),我可以正确地访问和初始化它,这
class DashboardVC : UIViewController, UITableViewDelegate, UITableViewDataSource {
... many other properties ...
var searchVC: SearchVC!
override func viewDidLoad() {
super.viewDidLoad()
searchVC = SearchVC()
}
}
现在是第二节课
class SearchVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
然后我一直在尝试编写测试目标的以下测试成员
import XCTest
@testable import Invest
class SearchVC: XCTestCase {
... setup and tearDown methods not included for clarity ...
func testSearchVC_isAddedToDashboard() {
let dashboard = DashboardVC()
_ = dashboard.view
XCTAssertNotNil(dashboard.searchVC.view, "View should not be nil")
}
}
你知道为什么会发生这种情况,或者如何解决它吗
谢谢你我终于成功了。 这原来是Xcode的一个小故障。出于无法解释的原因,我能够从最新版本的代码中提取代码,即使我遇到了错误,我也能够通过从测试目标中取出每个非测试类(应该是这样的)并只保留相关类来解决这些问题。我能够访问我的财产并在目标之间保持正确的间隔
有人遇到过同样的问题吗?非常感谢@kriztho发布您的解决方案。我面临着一个类似的问题,花了很多时间尝试我遇到的每一个可能的解决方案,直到我找到了你的。结果是,我正在工作的项目在测试目标中有一些Swift源文件。