微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Swift测试文件中调用Objective-C类

我正在努力实施单元测试.原始项目是用Objective-C编写的.

我创建了一个Swift编写的新测试目标.

如何在我的测试文件调用实际应用程序的Objective-C类?

我尝试过以下操作.

@testable import MyModule

但是,这似乎只有在所有文件都在Swift中时才有效,而对我来说并非如此.

我已经尝试了其他一些项目设置但是,这些似乎都不起作用.

我错过了一些明显的东西吗?

class MyTests: XCTestCase {

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        let vc = HomeViewController() //this line is failing. How do I expose this view controller written in objective c?
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }
}

解决方法

您需要创建桥接标头并将Objective-C文件添加到其中.
创建一个桥接头YourProductName-Bridging-Header.h,然后导入HomeViewControllerin桥接头.

To import Objective-C code into Swift from the same target

In your Objective-C bridging header file,import every Objective-C
header you want to expose to Swift. For example:

import “XYZCustomCell.h”

import “XYZCustomView.h”

import “XYZCustomViewController.h” In Build Settings,in Swift Compiler – Code Generation,make sure the Objective-C Bridging Header

build setting under has a path to the bridging header file. The path
should be relative to your project,similar to the way your Info.plist
path is specified in Build Settings. In most cases,you should not
need to modify this setting.

以下是一些可以帮助您的资源

> Using swift with Objective-C
> Answer to another stack overflow qustion
> How to use Objective-C in swift

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐