Skip to content

Instantly share code, notes, and snippets.

@froggomad
Last active July 10, 2021 15:10
Show Gist options
  • Save froggomad/8e78fe267139d7857fc9bc48d3ea16c1 to your computer and use it in GitHub Desktop.
Save froggomad/8e78fe267139d7857fc9bc48d3ea16c1 to your computer and use it in GitHub Desktop.
import XCTest
@testable import TinyViewController
class TinyViewControllerTests: XCTestCase {
func testSelectorAndTarget_getPassed_toViewControllerViewable() {
let vc = ViewController()
let dummyObject = DummyView(target: vc, selector: #selector(someSelector))
vc.blueView = dummyObject
vc.loadView()
XCTAssertNotNil(vc.blueView.target)
XCTAssertEqual(vc.blueView.selector, #selector(someSelector))
XCTAssertNil(vc.view) // this should be nil because DummyView can't be downcast to UIView
}
func testView_isNotNil_afterInjectingUIView() {
let vc = ViewController()
let dummyObject = DummyUIView(target: vc, selector: #selector(someSelector))
vc.blueView = dummyObject
vc.loadView()
XCTAssertNotNil(vc.view)
}
@objc func someSelector() {
}
}
fileprivate struct DummyView: ViewControllerViewable {
var target: Any?
var selector: Selector
}
fileprivate class DummyUIView: UIView, ViewControllerViewable {
var target: Any?
var selector: Selector
init(target: Any? = nil, selector: Selector) {
self.target = target
self.selector = selector
super.init(frame: .zero)
}
required init?(coder: NSCoder) {
fatalError()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment