Use of undeclared type 'ViewController' when unit testing my own ViewController in Swift?

前端 未结 3 1647
谎友^
谎友^ 2020-12-29 21:06

I have been trying to write test cases in Swift to test my ViewController. However, when I try to instantiate my own ViewController in a XCTestCase I get \"Use of undecla

3条回答
  •  抹茶落季
    2020-12-29 21:32

    Swift 1

    You should add ViewController.swift file's target membership also as your test target also if you are not using framework. Select class file add to target as shown in image:

    enter image description here

    OR

    If you are ViewController is within a framework : ViewController class is in different target and You are not declaring class with public access level. By default Classes are internal (Accessible within a target). Declare it as public and also make methods or properties as public if you want to access it i.e

    public class ViewController: UIViewController {
    
        public var content: String!
    
        override public func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override public func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    }
    

    Swift 2 Update

    In your test target, just import the module you want to test using the @testable keyword:

    @testable import moduleToTest
    

    You can now access public and internal symbols in your test target.

    swift 2 Xcode 7 unit testing

提交回复
热议问题