让我解释一下上下文。 我们的项目有 1框架目标和 1测试应用程序目标,它们使用框架。所有逻辑和代码都进入框架,测试应用程序只导入框架。测试应用程序中不包含任何逻辑。
现在这些是我的两个问题:
1。 Xcode找不到我在XCTest类的框架目标中声明的类(SearchVC)。当我尝试从类中创建实例时,我得到“使用未解析的标识符”。但是,从框架目标中的其他类创建实例时,我没有任何问题。实际上,我在另一个类(DashboardVC)中创建了一个属性(类型为SearchVC),我可以正确地访问和初始化它,这将我带到下一个问题。
2。 Xcode找不到我在XCTest类中创建的内部属性(类型为SearchVC)(在DashboardVC中)。我能够找到除了这个新属性之外的任何其他内部属性。
需要考虑的事项:
这些是类的简化片段。
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()
}
然后我一直在尝试编写Test目标的以下测试成员。
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")
}
}
为什么会发生这种情况或如何解决这个问题?
谢谢
答案 0 :(得分:0)
我终于能够让它发挥作用了。 原来这是来自Xcode的故障。由于无法解释的原因,我能够从最新版本的代码中提取,即使我遇到了错误,我也可以通过从测试目标中取出每个非测试类来解决这些问题(应该是这样)并且只保留相关课程。我能够访问我的财产并保持目标之间的正确分离。
有没有人经历过同样的故障?