210402 Fri
단위 테스트 실습
- New File → Unit Test bundle 만들기
- 생성된 TDD_Test 선택
앱에서 테스트하는 방법
- Target membership 파일 별로 체크박스 일일히 해주기
Why? Target Membership에 체크: 해당 모듈의 소스파일이 된다는 의미
- 혹은 @Testable 해주기
When you add the @testable attribute to an import statement for a module compiled with testing enabled, you activate the elevated access for that module in that scope. Classes and class members marked as internal or public behave as if they were marked open. Other entities marked as internal act as if they were declared public.
참고 자료: Writing Tests with Swift
커맨드에서 테스트하는 방법
- Target membership 파일 별로 체크박스 일일히 해주기
- 혹은 필요한 파일들 다 삽입 (프로젝트 설정 → build phases에서 직접 소스 파일로 넣어주기)
class CalculatorTests: XCTestCase {
let calculateBinaryNumber = CalculateBinaryNumber()
let calculateDecimalNumber = CalculateDecimalNumber()
override func setUpWithError() throws {
try super.setUpWithError()
}
override func tearDownWithError() throws {
try super.tearDownWithError()
}
func test_decimal_plus() {
XCTAssertEqual(calculateDecimalNumber.plus(111, 222), 333)
}
}
이렇게 하면 안됨.
setUpWithError가 viewdidload하면 제일 먼저 실행하는 함수인데
그전에 calculateBinaryNumber 값을 넣어줘봤자 소용 없음.
아래와 같이 10진법 더하기 함수를 테스트해봤다.
문제점/고민한점 → 해결방안
유닛 테스트를 진행해보려 했으나 에러 메시지가 나타남 😢
모둠원들과 비교해보니 나의 Xcode는 구버전이었다 😅 (업데이트 하지 않은 상태, macOS만 신버전 Big Sur 11.1)
앱스토어로 가보니 update가 아닌 download가 떠서?? 이상했지만 (이게 기존 맥북에서 M1 맥북에어로 migration해서 그런건지?)
아무튼 최신버전 XCode로 다운 받은 후 해결됨 👍
(최신 버전 다운 후에도 똑같이 위의 에러 메시지가 떴지만
무시하고 cmd + u를 누르니 실행이 됐다)
- TDD 이슈: Undefined symbol
→ 이게 해결이 안돼서 도움을 요청했고
덕분에 Target membership에 대해 알게됨 👍 😊
참고 자료: Linker error when accessing application module in UI tests in Xcode 7.1
Author And Source
이 문제에 관하여(210402 Fri), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunnywhynot/210402-Fri저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)