在Swift中向OSX项目添加测试时无法访问主要目标方法

时间:2016-07-27 18:18:49

标签: swift macos cocoa xctest

我尝试将测试包添加到我的项目中,这似乎已成功。

但是,当我尝试在主项目中创建类的实例时 - 我无法看到它们。

该项目看起来很好 - 但我可以'实例化任何测试对象

任何想法如何访问它们

要测试的示例类:

class EmailHelper: NSObject {
    func generateEmailBody (greeting: String, bodyContent: String) -> String {
        //Content goes in here
return message
    }
}

import XCTest

class MyProject_DesktopTests: 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() {
    // The Test would go in here but I can't seem to resolve EmailHelper class- it generates a lint error
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measureBlock {
            // Put the code you want to measure the time of here.
        }
    }

}

1 个答案:

答案 0 :(得分:0)

我设法通过将Testable添加到类的顶部来实现它(这似乎是OSX特定的问题)

import XCTest
@testable import MyProjectName // <--- This was the missing bit.... :)
class MyProject_DesktopTests: 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() {
    // The Test would go in here but I can't seem to resolve EmailHelper class- it generates a lint error
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measureBlock {
            // Put the code you want to measure the time of here.
        }
    }

}

另外一定要在添加它之后清理你的项目它似乎工作。