|
|
|
import XCTest |
|
@testable import projectname |
|
|
|
class ExampleTests: XCTestCase { |
|
|
|
var viewControllerUnderTest: MyViewController! |
|
|
|
override func setUp() { |
|
super.setUp() |
|
|
|
let storyboard = UIStoryboard(name: "Main", bundle: nil) |
|
self.viewControllerUnderTest = storyboard.instantiateViewControllerWithIdentifier("MyViewController") as! MyViewController |
|
|
|
self.viewControllerUnderTest.loadView() |
|
self.viewControllerUnderTest.viewDidLoad() |
|
} |
|
|
|
func testViewControllerUnderTestIsComposedOfButton() { |
|
|
|
XCTAssertNotNil(self.viewControllerUnderTest.button, "Does not have a button") |
|
} |
|
|
|
func testButtonInvokesActionMethodWhenTapped() { |
|
|
|
let actionMethod = self.viewControllerUnderTest.button.actionsForTarget(self.viewControllerUnderTest, forControlEvent: UIControlEvents.TouchUpInside) |
|
let actualMethodName = actionMethod?.first |
|
let expectedMethodName = "handleTap:" |
|
|
|
XCTAssertEqual(actualMethodName, expectedMethodName, "Actual: \(actualMethodName) not equal to expected: \(expectedMethodName)") |
|
} |
|
|
|
func testViewControllerUnderTestIsComposedOfLabel() { |
|
|
|
XCTAssertNotNil(self.viewControllerUnderTest.label, "Does not have label") |
|
} |
|
|
|
func testLabelAfterButtonTap() { |
|
|
|
let button: UIButton = UIButton() |
|
viewControllerUnderTest.handleTap(button) |
|
|
|
// alterantively tap button with |
|
// viewControllerUnderTest.button.sendActionsForControlEvents(UIControlEvents.TouchUpInside) |
|
|
|
let expectedLabelText = "Hello testing" |
|
let actualLabelText = viewControllerUnderTest.label.text |
|
|
|
XCTAssertEqual(expectedLabelText, actualLabelText, "Label text of: \(expectedLabelText) not equal to text: \(actualLabelText)") |
|
} |
|
} |