✅ 이번 시간에는 UI Test에 대해서 알아볼 예정이야.
유닛 테스트와 UI 테스트의 차이
유닛 테스트는 클래스에 대해서 진행하고, UI 테스트는 앱 자체를 런치 시켜서 사용한다.
XCUIApplication을 문서에서 살펴보면 하나의 클래스이다!
녹화버튼을 이용해 코드를 작성할 수도 있다.
다만, 네트워크가 있어야 하거나, 여러번의 탭을 통해 이동한 화면 등 어려움이 존재하여, Unit Test를 더 활용한다.
또한 녹화 버튼을 통하면 어떻게 쿼리를 작성해야하는지 쉽게 파악할 수 있으니 참고하자.
🟠 아래는 예시코드
//
// MovieReviewUITests.swift
// MovieReviewUITests
//
// Created by Hamlit Jason on 2022/01/17.
//
import XCTest
// UITest의 경우에는 현업에서는 네트워크에 연결되어있어야 앱이 구동되는점, 또한, 여러번 클릭해서 그 지점으로 가서 사용해야하는 단점으로 인해 Unit테스트만 주로 사용한다.
class MovieReviewUITests: XCTestCase {
var app: XCUIApplication!
override func setUp() {
super.setUp()
continueAfterFailure = false // 실패하면 코드 쭉 실행안하고 종료
app = XCUIApplication()
app.launch()
}
override func tearDown() {
super.tearDown()
app = nil
}
func test_navigationBar의_타이틀이_영화평점으로_설정되어있다() {
let existNavigationBar = app.navigationBars["영화 평점"].exists
XCTAssertTrue(existNavigationBar)
}
func test_SearchBar가_존재한다() {
// 서치바가 네비게이션의 서치필드에 들어있기 때문에
let existSearchBar = app.navigationBars["영화 평점"]
.searchFields["Search"]
.exists
XCTAssertTrue(existSearchBar)
}
func test_SearchBar에_cancel버튼이_존재한다() {
let navigationBar = app.navigationBars
navigationBar
.searchFields["Search"]
.tap()
let existSearchBarCancelButton = navigationBar
.buttons["Cancel"]
.exists
XCTAssertTrue(existSearchBarCancelButton)
}
func test_녹화버튼을_클릭해서_테스트코드_작성() {
let app = XCUIApplication()
let navigationBar = app.navigationBars["영화 평점"]
let searchSearchField = navigationBar.searchFields["Search"]
searchSearchField.tap()
app.tables["Empty list"].swipeUp()
searchSearchField.swipeDown()
navigationBar.buttons["Cancel"].tap()
let collectionViewsQuery = app.collectionViews
collectionViewsQuery.children(matching: .cell).element(boundBy: 3).swipeUp()
collectionViewsQuery.children(matching: .cell).element(boundBy: 2).swipeDown()
}
}
'Archive > 패캠(초격차)' 카테고리의 다른 글
part5 (ch6). MovieReview XCTest 코드리뷰 (0) | 2022.02.01 |
---|---|
part5 (ch6). BDD의 개념에 대해서 알아보기 (0) | 2022.02.01 |
part5 (ch6). MovieReview 코드리뷰 (0) | 2022.01.31 |
part5. (ch6) SwiftLint 알아보기 (0) | 2022.01.17 |
part5. (ch5) BookReview XCTest 코드리뷰 (0) | 2022.01.09 |