회사동기가 알려줬는데, 흥미로워서 잠깐만 WWDC봐야지 했는데, 한편 다봐버렸다.
너~~무 흥미롭고, 새롭고, 재밌었다.
내용은 https://green1229.tistory.com/511 이분이 너.무. 정.말. 잘 작성해놓으셨다.
( 그래도 사용방법좀 작성해보려고했는데... 의지마저 꺾여버렸다. )
링크
WWDC는 아래 두개보면 될것 같다.
https://developer.apple.com/kr/videos/play/wwdc2024/10179/
https://developer.apple.com/kr/videos/play/wwdc2024/10195/
문서는 여기보면 될것 같다. 마이그레이션 탭도 있으니 참고하면 될것 같다.
https://developer.apple.com/documentation/testing
요약
Swift Testing은 기존 XCTest를 대체하기위한 새로운 프레임워크다.
Swift 언어의 최신기능( 매크로 등 )들을 사용할 수 있으며,
xcode16부터 새로운 프로젝트는 이 프레임워크를 기본으로한다.
이 프레임워크를 사용하기 위해서는 새로운 target을 만드는건 아니고,
기존 XCTest와 동일하게 Unit Test Bundle 타겟그대로 사용하면된다.
따라서 기존 XCTest도 그대로 사용가능하다.
코드는 이렇다. Testing을 임포트하고, @Test, #expect 매크로를 사용하면된다.
코드가 참 간단해졌다!!! (struct로도 가능..)
장점
너무 편해졌고, 기능이 좋다라고 생각든다.
사실 XCTest를 대체한다고하는데, 그동안 뭐가 불편했더라 ? 싶었는데, 볼수록 대~박 이구나 느꼈다.
그동안 XCTestCase 상속하는 클래스만들고, test로시작하는 메소드만들고 했었는데,
이제는 그냥 @Test 매크로만 붙이면 바로 쌉가능..
전역메소드로도 가능하다.
#expect 매크로를 통해서 손쉽게 결과를 작성할수있다.
심지어 실패원인 로그도 너무 잘나온다.
매개변수를 이용하여 병렬적으로도 실행가능하다... ㄷㄷ
아래코드처럼 arguments에 String 3개넣어서 하나의 메소드로 실행이 가능하다..
기존에는 각 메소드를 만들어서 중복된코드가 많아져 유지보수가 힘들었었다.
또는 for문으로 만들어서 하나의 메소드로 테스트했었지만, 이제는 아래처럼 사용하면 병렬로 실행이 가능하다.
심지어 arguments안에 있는 인자들 각각을 왼쪽 처럼 개별로도 실행이 가능하다...... 대박...
상태공유 피할수있다.
아래 각 @Test 메소드들은 video 인스턴스를 공유한느것처럼 보이지만, 실제로는 각 @Test메소드가 실행될때마다 video 인스턴스가 매번 생성된다고한다. 따라서 상태공유가 되지않아, 관련된 문제를 피할 수 있다.
struct안에 struct를 구조로 만들어서, 네비게이션에서 계층적으로 테스트를 표현할수도 있다.
또, 태그도 넣을수있어서, 네비게이션에서 한눈에 볼수도있고.....
앞으로...
이제는...정말...WWDC 다시 열심히봐야겠다!
또 매크로도 좀 알아보려고한다. 매크로가 참 여기저기 사용되는듯하다.
계속 찬양하듯 얘기했는데, 막상 또 써보면 불편할수도있으므로... Swift Testing으로 테스트코드도 짜봐야겠다.
이슈도 찾아내서 이 오픈소스 기여해보고싶다!
'WWDC' 카테고리의 다른 글
WWDC18 - What's New in User Notifications (0) | 2021.08.11 |
---|---|
WWDC20 - The Push Notifications primer (0) | 2021.08.09 |
WWDC20 - Keep your complications up to date (0) | 2021.08.09 |
WWDC 20 - Create complications for Apple Watch (0) | 2021.07.14 |
WWDC 20 - Build SwiftUI views for widgets (0) | 2021.07.07 |