단위 테스트를 수행하여 shouldChangeCharactersInRange
을 호출하고 그 결과가 true인지 또는 false인지 확인하십시오.
이것은 테스트 위임 메서드를 단위로 표시하는 방법의 예입니다. UIKit이 특정 메소드를 호출하는 곳에서는 테스트에서 동일한 것을 호출합니다.
비록 특정 클래스가 위임 메서드를 구현할 수 있지만 테스트가이 메서드를 알지 못하는 경우 더 좋습니다. UIKit은 텍스트 필드에 대리자를 요청한 다음이를 호출합니다. 우리의 테스트는 똑같이해야하며 위임자를 통해 호출해야합니다. 그렇지 않으면 구현을 잠그므로 대리인 메서드를 리팩터링하는 것이 어렵습니다.
func testMyTextField_ShouldAllowAlphabeticCharacters() {
let vc = // …Whatever you do to load your view controller
vc.loadViewIfNeeded() // Make sure text field is loaded
let field = vc.myTextField
// Call through field.delegate, not through vc
let result = field.delegate.textField(field,
shouldChangeCharactersIn: NSMakeRange(0, 1),
replacementString: "a")
XCTAssertTrue(result)
}