gpt4 book ai didi

ios - 使用 @testable 来自 XCTest 的 "Use of unresolved identifier"和 "value of type has no member"

转载 作者:行者123 更新时间:2023-11-30 13:24:35 30 4
gpt4 key购买 nike

让我解释一下背景。我们的项目有 1 个框架目标 和使用该框架的 1 个测试应用程序目标。所有逻辑和代码都进入框架,测试应用程序仅导入框架。测试应用程序中不包含任何逻辑。

现在这是我的两个问题:

<强>1。 Xcode 无法找到我在 XCTest 类的框架目标中声明的类 (SearchVC)。 当我尝试从该类创建实例时,我收到“使用未解析的标识符”。但是,在从框架目标中的其他类创建实例时,我没有任何问题。事实上,我在另一个类 (DashboardVC) 中创建了一个属性(SearchVC 类型),并且我可以正确访问和初始化它,这将我带到下一个问题。

<强>2。 Xcode 找不到我从 XCTest 类创建(在 DashboardVC 中)的内部属性(SearchVC 类型)。 除了这个新属性之外,我可以找到任何其他内部属性。

需要考虑的事情:

  1. 我正在使用 XCTest 类中的 @testable
  2. 这两个类仅包含在框架目标中,而 XCTest 类包含在相应的测试目标中。
  3. 如果我将 SearchVC 作为一种解决方法包含在测试目标中,我就能够克服问题 1。但是,问题 2 仍然存在。 XCode 仍然无法在其他类中找到该属性。

这些是类的简化片段。

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 的一个小故障。由于无法解释的原因,我能够从最新版本的代码中提取数据,即使我遇到了错误,我也能够通过从测试目标中取出每个非测试类(应该是这样)来解决这些问题,并且只保留相关的类。我能够访问我的属性(property)并保持目标之间的正确间隔。

有人遇到过同样的问题吗?

关于ios - 使用 @testable 来自 XCTest 的 "Use of unresolved identifier"和 "value of type has no member",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378220/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com