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 undeclared type 'ViewController' ". (ViewController is the name of my own UIViewController class)
Has anyone else faced this issue before? I am using Xcode 6 beta 5
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:
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.
}
}
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.