
- ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ฉด ํ์ง, ์์ ์ฑ ์ค์
- ์๋ํ๋ ํ ์คํธ๋ ์๊ฐ์ด ์ง๋๋ ์ํํธ์จ์ด ํ์ง์ ๋ฌ์ฑํ๊ณ ์ ์งํ ์ ์๋ ์ ์ฆ๋ ๋ฐฉ๋ฒ



1๏ธโฃ Swift Testing ๊ฐ์
- Swift Testing์ Swift ์ ์ฉ์ ์๋ก์ด ์คํ ์์ค ํ ์คํธ ํ๋ ์์ํฌ๋ก, Xcode 16์ ๊ธฐ๋ณธ ํฌํจ๋จ.
- ๋ชฉํ: ์๋ํ๋ ํ ์คํธ๋ฅผ ํตํด ํ์ง๊ณผ ์์ ์ฑ์ ์ฅ๊ธฐ์ ์ผ๋ก ์ ์งํ ์ ์๋๋ก ์ง์.
- XCTest์๋ ๋ฌ๋ฆฌ Swift ์ธ์ด์ ํน์ฑ๊ณผ ๋์์ฑ, ๋งคํฌ๋ก, ํ๊ทธ ๋ฑ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉ.
- Windows, Linux ๋ฑ ๋ฉํฐ ํ๋ซํผ ์ง์. GitHub ์คํ์์ค๋ก ๊ณต๊ฐ ๊ฐ๋ฐ ์ค.
2๏ธโฃ Swift Testing์ ํต์ฌ ๊ตฌ์ฑ ์์ 4๊ฐ์ง
- ์ฒซ ๋ฒ์งธ ๋จ๊ณ : ํ๋ก์ ํธ์ ํ ์คํธ ๋ฒ๋ค ๋์ ์ถ๊ฐํ๊ธฐ


- ์ฒซ ํ ์คํธ ์์ฑํด๋ณด๊ธฐ

โ 1. ํ ์คํธ ํจ์: @Test
- ์ ์ญ ํจ์, ์ ์ ํจ์, ์ธ์คํด์ค ๋ฉ์๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ.
- ๋น๋๊ธฐ(async), ์์ธ(throws), ์กํฐ ๊ฒฉ๋ฆฌ๋ ์ง์.
- @Test("์ค๋ช ") ํ์์ผ๋ก ์ด๋ฆ ์ง์ ๊ฐ๋ฅ.
- ํ ์คํธ์์ ํ์ธํ ๊ฒ : ๋น๋์ค ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์์๊ณผ ์ผ์นํ๋์ง

โ 2. ๊ธฐ๋์น ๋งคํฌ๋ก: #expect, #require
- #expect๋ ํํ์์ ํ๊ฐํ๊ณ ์คํจ ์ ์์ธ ์ ๋ณด ์ ๊ณต (์์ค์ฝ๋์ ํ์ ํํ์ ๊ฐ์ ์บก์ฒ).
- #require๋ ์กฐ๊ฑด ๋ถ์ถฉ์กฑ ์ ํ ์คํธ ์กฐ๊ธฐ ์ข ๋ฃ.
- ๋ชจ๋ Swift ํํ์ ์ง์ (์ฐ์ฐ์, ๋ฉ์๋ ๋ฑ).
- ์์: ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํด ๋น๋์ค ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ์ธ
#expect(video.rating == .general)
#require let user = db.firstUser else { return }



- ๊ธฐ๊ฐ , ํด์๋ ํ๋๊ฐ ๋ชจ๋ ์๋ก ๊ฐ์ง ์์
- video ์ ํ์ด ์ด๊ธฐํ ๋ ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ก๋๋์ง ์๋ ๊ฒ์ผ๋ก ์์
- ๋ถํ ํธ์ง๊ธฐ์์ ๋น๋์ค ์ด๋์ ๋ผ์ด์ ๋ก ์ด๋ํ์ฌ ์์ฑ์ด ํ ๋น๋์๋์ง ํ์ธํ์ฌ ํด๊ฒฐํ๊ธฐ
โ 1. ๋ถํ ํธ์ง๊ธฐ ์ด๊ธฐ ๋จ์ถํค
| ์ํ ๋ถํ ํธ์ง๊ธฐ ์ด๊ธฐ | Control + Option + Command + T |
| ์์ง ๋ถํ ํธ์ง๊ธฐ ์ด๊ธฐ | Control + Command + โฉ๏ธ Return (๋๋ ํธ์ง๊ธฐ ํญ์์ ์ค๋ฅธ์ชฝ ํด๋ฆญ → Split Editor) |
๋๋ ์๋จ ๋ฉ๋ด์์ Editor > Split Editor ์ ํ๋ ๊ฐ๋ฅ
โ 2. ํ์ผ ๊ฒ์ (ํ์ผ ์ด๋ฆ์ผ๋ก ์ด๋)
| ํ์ผ ๊ฒ์์ฐฝ ์ด๊ธฐ | Command + Shift + O |
์ ๋ ฅ์ฐฝ์ ํ์ผ ์ด๋ฆ, ํ์ ์ด๋ฆ, ์ฌ๋ณผ ๋ฑ ๊ฒ์ ๊ฐ๋ฅ


#expect ๋งคํฌ๋ก ์ถ๊ฐ ์์ )


- ํ ์คํธ์์ ์์ํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ ์กฐ๊ธฐ ์ข ๋ฃํ๊ณ ์ถ์ ๋ ? #require ๋งคํฌ๋ก

- ์ต์ ๋ ๊ฐ์ ์์ ํ๊ฒ ์ธ๋ํํ๊ณ ๊ฐ์ด nil ์ธ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ ๊ฐ๋ฅ > ํ ์คํธ ์ค์ง


โ 3. ํน์ฑ(Attribute)
- ํ ์คํธ์ ๋ํ ์ค๋ช ์ ๋ณด ์ถ๊ฐ, ํ ์คํธ ์คํ ์๊ธฐ ๋๋ ์คํ ์ฌ๋ถ ๋ง์ถคํ, ํ ์คํธ ๋์ ๋ฐฉ์ ์์
- ํ ์คํธ์ ๋ฉํ๋ฐ์ดํฐ ๋๋ ๋์ ์ ์ด๋ฅผ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ.
- ์ฌ์ฉ ์์: ํ์ ์ด๋ฆ, ๋นํ์ฑํ, ๋ฒ๊ทธ ์ถ์ ๋งํฌ, ์กฐ๊ฑด๋ถ ์คํ ๋ฑ.
@Test("Test Video Rating", .bug("https://tracker/123"), .disabled("๊ธฐ๊ณ ๊ณ ์ฅ"))


- ๋๋ฒ์งธ ํ ์คํธ ์์ฑ : Xcode 16์ ๋ด์ฅ๋ ํ ์คํธ ์ค๋ํซ ์ฌ์ฉ > ๋น ํ ์คํธ ํจ์ ์ถ๊ฐ

-> ์ด ๋๊ฐ์ง ํ ์คํธ๋ฅผ ๊ทธ๋ฃนํ ํด์ ํ๋ก์ ํธ์์ ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์๊ฒ
โ 4. ๋ชจ์(Suite)
- ๊ด๋ จ ํ ์คํธ ๊ทธ๋ฃนํ ๊ตฌ์กฐ์ฒด.
- @Suite ์์ฑ์ผ๋ก ๋ช ์ ๊ฐ๋ฅ (์์์ ์ธ์๋ ๋จ).
- init/deinit์์ ํ ์คํธ ์ ํ ๋ก์ง ์คํ ๊ฐ๋ฅ.
- ๋ณ๋์ @Suite ์ธ์คํด์ค๊ฐ ๋ชจ๋ ์ธ์คํด์ค @Testํจ์์ ๋ํด ๋ณ๋๋ก ์์ฑ๋์ด ์๋์น ์์ ์ํ ๊ณต์ ๋ฐฉ์ง.
- ํ ์คํธ ์ํ ๊ณต์ ๋ฐฉ์ง๋ฅผ ์ํด ๊ตฌ์กฐ์ฒด ๊ถ์ฅ.


3๏ธโฃ Swift Testing์ ํน์ง ๋ฐ ์ฅ์
โ Swift ๋ฌธ๋ฒ ์นํ์ DSL
- XCTAssertEqual ๋ฑ ๋ณ๋ ์ด์ค์ ํจ์ ์์ด๋ ์ผ๋ฐ Swift ํํ์ ์ฌ์ฉ ๊ฐ๋ฅ.
โ ์์ธํ ์คํจ ๋ฆฌํฌํธ
- ์คํจ ์ ์๋ธ ํํ์์ ๊ฐ๊น์ง ์๋ ์ถ๋ ฅ.
- ์ฝ๋์์ ๋๋ฒ๊น ์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ ธ์ถํจ.
โ ๋์์ฑ ์์ ํตํฉ
- async/await, actor ๊ฒฉ๋ฆฌ ๋ฑ์ ์๋ฒฝ ์ง์.
โ ํ ์คํธ ํจ์ ์คํ ์กฐ๊ฑด ์ ์ด
- .enabled(if: someCondition) ๋๋ .disabled("์ด์ ") ํน์ฑ ์ฌ์ฉ.
- CI/CD์์ ์กฐ๊ฑด ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ ์คํ ์ฌ๋ถ ์ ์ด ๊ฐ๋ฅ.
โ ๋ฒ์ ์ ํ
- @available ์ฌ์ฉ ๊ฐ๋ฅ. ํ ์คํธ๊ฐ ์ง์ OS ๋ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์คํ๋จ.
4๏ธโฃ Common workflows : ์กฐ๊ฑด์ด ์๋ ํ ์คํธ

- ์กฐ๊ฑด์ด ์๋ ํ ์คํธ : ํน์ ๊ธฐ๊ธฐ๋ ํ๊ฒฝ ๋ฑ ํน์ ์ํฉ์์๋ง ์คํ

- ํ ์คํธ๊ฐ ์คํ ๋์ง ์๊ฒ ํ๋ ค๋ฉด ? ํ ์คํธ ๋นํ์ฑํ. ์ฃผ์์ฒ๋ฆฌ๋ณด๋ค ์ ํธ๋จ > ์ปดํ์ผ๋ ํ ์คํธ ๋ด๋ถ์ ์ฝ๋๋ฅผ ํ์ธํ๊ธฐ ๋๋ฌธ.
( ํ ์คํธ๊ฐ ๋นํ์ฑํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๋๋ฐ ์ฌ์ฉํ๋ ์ฃผ์์ ํ์ฉ )

- ํ ์คํธ๊ฐ ๋นํ์ฑํ๋๋ ์ด์ : ๋ฒ๊ทธ ์ถ์ ์์คํ ์์ ์ถ์ ๋๋ ๋ฌธ์ ๋๋ฌธ์ธ ๊ฒฝ์ฐ
- .bug(..) ํน์ฑ์ ํฌํจ ์์ผ url๋ก ๊ด๋ จ ์ด์ ์ฐธ๊ณ
- xcode 16 ์ ํ ์คํธ ๋ณด๊ณ ์์์ ํด๋น ๋ฒ๊ทธ ํน์ฑ์ ํ์ธํ๊ณ ํด๋ฆญํด ํด๋น url ํ์ธ ๊ฐ๋ฅ

- ํ ์คํธ์ ์ ์ฒด ๋ณธ๋ฌธ์ ํน์ OS๋ฒ์ ์์๋ง ์คํํ ์ ์๋ ๊ฒฝ์ฐ

5๏ธโฃ Common workflows : ํ๊ทธ(Tag) ์์คํ ๊ณผ ํ ์คํธ ๊ทธ๋ฃนํ
- ๊ณตํต๋ ํน์ง์ ๊ฐ์ง ํ ์คํธ๋ฅผ ์๋ก ๋ค๋ฅธ ๋ชจ์์ด๋ ํ์ผ์ ์์ด๋ ์ฐ๊ฒฐ ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ

โ ํ๊ทธ ์ ์ธ ๋ฐ ์ฌ์ฉ
extension Tag {
static let formatting = Tag("formatting")
}
@Test("ํ
์คํธ", .tag(.formatting))
โ ํจ๊ณผ
- ํ ์คํธ ๋ด๋น๊ฒ์ดํฐ์์ ํ๊ทธ๋ก ๊ทธ๋ฃนํํ๊ฑฐ๋ ์คํ ๊ฐ๋ฅ.
- ํ ์คํธ ๊ณํ์์ ํน์ ํ๊ทธ ํฌํจ/์ ์ธ ์ค์ ๊ฐ๋ฅ.
- ํ๊ทธ ๊ธฐ๋ฐ ๋ฆฌํฌํธ ๋ถ์ ๋ฐ ํจํด ์ธ์ฌ์ดํธ ์ ๊ณต.
- ๋ง์ถคํ ํ๊ทธ ํ ๋น ๊ธฐ๋ฅ : ํ ์คํธ ๋ด๋น๊ฒ์ดํฐ ํ๋จ์ ๋ชจ๋ ํ๊ทธ๊ฐ ํ์

- ์ผ๋ถ ๋ฐ์ดํฐ ์์ ์ง์ ๋ก์ง์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ํ ์คํธ


- Video ์ ๋ณด์ ์์ ์ง์ ์ ๊ดํ ๊ฒ > 2๊ฐ ํ์ ๋ชจ์์ผ๋ก
- ์์ ์ง์ ํ๊ทธ๋ฅผ @Suite์๋ก ์ฌ๋ ค์ ํฌํจ๋ ๋ชจ๋ ํ ์คํธ์์ ์์๋๋๋ก ํ ์ ์๋ค.

- ๊ณตํต์ ์ด ์๋ ํ ์คํธ์ ํ๊ทธ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ
- ํน์ ํ ๊ธฐ๋ฅ์ด๋ ํ์ ์์คํ ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๋ชจ๋ ํ ์คํธ์ ๊ณตํต ํ๊ทธ ์ ์ฉ
- ํน์ ํ๊ทธ๊ฐ ์๋ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํ ํ ์ ์์
- test report์์ ํํฐ๋ง ๊ฐ๋ฅ
- ํ๊ทธ ์์ฒด๋ ๋ค๋ฅธ ํ์ผ, ๋ชจ์ ๋๋ ๋์์ ํ ์คํธ์ ์ ์ฉํ ์ ์์.
- ์ฌ๋ฌ ํ๋ก์ ํธ ๊ณต์ ๊ฐ๋ฅ

swift testing : ํ ์คํธ ๊ฒํ์ ํน์ ํ ์ด๋ฆ๋ณด๋ค ํ๊ทธ๋ฅผ ํฌํจ์ํค๊ฑฐ๋ ์ ์ธํ๋ ๊ฒ์ด ๋ ์ข์
- ๋ชจ๋ ์๋๋ฆฌ์ค๊ฐ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ํ์๋ ์์
- ๋ฐํ์ ์กฐ๊ฑด : .enabled(if ...)
- ํ๊ทธ ์ฌ์ฉ๋ฐฉ๋ฒ -> ์ฌํ ์ธ์
6๏ธโฃ Common workflows : ๋งค๊ฐ๋ณ์ํ๋ ํ ์คํธ (Parameterized Test)
- ๋งค๋ฒ ๋ค๋ฅธ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ๋ฐ๋ณต

์์ > ๋ค์ํ ๋น๋์ค์์ ์ธ๊ธ๋๋ ๋๋ฅ์ ์๋ฅผ ํ์ธํ๋ ์ฌ๋ฌํ ์คํธ
- ์๋ก์ด videoLibrary ์์ฑ > ๋น๋์ค๋ฅผ ์ด๋ฆ์ผ๋ก ์กฐํ > #expect ๋งคํฌ๋ก๋ก ์ธ๊ธ๋ ๋๋ฅ ์ ํ์ธ

โ ๋ชฉ์
- ํ๋์ ํ ์คํธ ํจ์๋ก ๋ค์ํ ์ธ์์ ๋ํด ๋ฐ๋ณต ์คํ.
- ์ ์ง๋ณด์์ฑ ๊ฐ์ , ์ค๋ณต ์ ๊ฑฐ, ์ธ์๋ณ ๋ณ๋ ฌ ์คํ ๊ฐ๋ฅ.
โ ์์ฑ ๋ฐฉ๋ฒ
@Test(arguments: ["Video1", "Video2"])
func testContinents(for videoName: String) {
let video = library.lookup(name: videoName)
#expect(video.mentionedContinents.count >= 1)
}
โ ์ฅ์
- ํ ์คํธ ์คํ ์ ๊ฐ๋ณ ์ธ์๋ณ ๊ฒฐ๊ณผ ์ ๊ณต.
- ์คํจํ ์ธ์๋ง ๊ฐ๋ณ ์ฌ์คํ ๊ฐ๋ฅ.
- ๋๋ฒ๊น ์ ์ธ์ ํ์ธ ๋ฐ ์ค๋จ์ ์ง์ ์ฉ์ด.
1) ์๋ช ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐ


2) ์กฐํํ ๋น๋์ค์ ์ด๋ฆ์ ์ ๋ฌ๋ฐ์ ์ธ์๋ก ๋์ฒดํ๋ ๊ฒ


- ์ํ๋ ๊ฒฝ์ฐ ์ธ์ ์์ ํ์ ์ด๋ฆ์ด๋ ๋ค๋ฅธ ํน์ฑ์ ์ ๋ฌํ์ฌ ์ด๋ฆ ์ง์ ๊ฐ๋ฅ


=> ์ธ์ ์ถ๊ฐ์ ํ ์คํธ ๋ฒ์ ํ์ฅ์ด ์ฌ์์ง.


- ์คํจํ ์ธ์๋ง ๋ค์ > ์คํ๋ฒํผ์ผ๋ก ๊ฐ๋ณ์ธ์ ์คํ
- ๊ทธ์ ์ , ํ ์คํธ ์์ ๋ถ๋ถ์ ์ค๋จ์ ์ถ๊ฐ



- ๋งค๊ฐ๋ณ์ํ๋ ํ ์คํธ๋ ๊ฐ ๊ฐ๋ณ ์ธ์์ ์ธ๋ถ ์ฌํญ์ ๊ฒฐ๊ณผ์์ ๋ช ํํ๊ฒ ํ์ธ ๊ฐ๋ฅ
- ์ธ๋ถํ๋ ๋๋ฒ๊น ์ ์ํด ์ธ์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์คํ ๊ฐ๋ฅ
- ์ธ์๋ฅผ ๋ณ๋ ฅ ์คํํ์ฌ ๋ ํจ์จ์ ์ผ๋ก ์คํ > ๊ฒฐ๊ณผ๋ฅผ ๋ ๋นจ๋ฆฌ ์ป์.
7๏ธโฃ Swift Testing vs XCTest ๋น๊ต
| ํญ๋ชฉ | XCTest | Swift Testing |
| ํ ์คํธ ์ธ์ | ๋ฉ์๋ ์ด๋ฆ์ด test๋ก ์์ํ๋ ๋ชจ๋ ๋ฉ์๋ | @Test ์์ฑ ๋ช ์ |
| ์ง์ ํ์ | ์ธ์คํด์ค ๋ฉ์๋ | ์ธ์คํด์ค ๋ฉ์๋, ์ ์ ๋๋ ์ ์ญํจ์ |
| ์ด์ค์ ๋ฐฉ์ | XCTAssert* ํจ์๋ค | #expect, #require ๋งคํฌ๋ก |
| ๋ณ๋ ฌ ์คํ | ์ ํ์ (ํ๋ก์ธ์ค ๋จ์) | Swift ๋์์ฑ ๊ธฐ๋ฐ ๋ณ๋ ฌ ์คํ |
| ์ํ ๊ณต์ ๋ฐฉ์ง | ํด๋์ค ๊ธฐ๋ฐ, ๊ณต์ ์ํ ์กด์ฌ | ๊ตฌ์กฐ์ฒด ๊ธฐ๋ฐ, ๊ฐ ํ์ ๊ถ์ฅ |
| ์ ํ ์ฒ๋ฆฌ | setUp, tearDown ๋ฉ์๋ ( setUp() async throws) | init, deinit ์ฌ์ฉ ( init() async throws ) |
| ๊ทธ๋ฃนํ | ํด๋์ค ์์ (XCTestCase์์ ์์) | ์ค์ฒฉ ๊ตฌ์กฐ์ฒด ๋ฐ @Suite ์ฌ์ฉ (๊ตฌ์กฐ์ฒด, ์กํฐ, ํด๋์ค ๊ฐ๋ฅ, ์๋์น ์์ ์ํ๊ณต์ ๋ก ์ธํ ๋ฒ๊ทธ๋ฅผ ํผํ๊ธฐ ์ํด ๊ตฌ์กฐ์ฒด ์ถ์ฒ ) |




- ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ๋ฅ : ์ ์ง์ ์งํ
- ๋จ์ผ ๋์์ผ๋ก ์กด์ฌ ๊ฐ๋ฅ
- ์์ ์ค๋ช ํ๋๋ก ๋งค๊ฐํ๋ ๋ณ์ ํ ์คํธ ํ๋๋ก ํตํฉ
- ํ ์คํธ ์ด๋ฆ์ ์ ํ ๋ ๋์ด์ test ์๋ถ์ฌ๋ ๋จ.

- XCTest๋ฅผ ๊ณ์ ์ฌ์ฉํด์ผ๋๋ ํ ์คํธ :
XCUIApplication ๊ณผ ๊ฐ์ UI ์๋ํ API๋ XCTMetric๊ณผ ๊ฐ์ ์ฑ๋ฅ ํ ์คํธ API๋ฅผ ์ฌ์ฉํ๋ ํ ์คํธ๋ ์ง์๋์ง ์์.
Objective-C๋ก๋ง ์์ฑํ ์ ์๋ ๋ชจ๋ ํ ์คํธ
- XCTest ์ด์ค์ ํจ์๋ฅผ Swift Testing์์ ํธ์ถํ๊ฑฐ๋ #expect ๋งคํฌ๋ก๋ฅผ XCTest์์ ํธ์ถํ์ง ๋ง๊ธฐ
๋ฌธ์ : Migrating a test from XCTest
-> ์ด์ค์ ๋ณํํ๊ณ ๋น๋๊ธฐ ๋๊ธฐ ์กฐ๊ฑด ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ฑ
8๏ธโฃ ์ปค๋งจ๋๋ผ์ธ ๋ฐ ํ๋ซํผ ์ง์
- swift test CLI์์ ์คํ ์ ์ฝ์์ ์ปฌ๋ฌ ์ถ๋ ฅ ํฌํจ ์์ธ ๋ก๊ทธ ์ ๊ณต.
- SwiftPM, Xcode 16, VSCode ๋ฑ ์ฃผ์ ๋๊ตฌ์ ์ฐ๋๋จ.
- Linux/Windows/macOS ๊ณตํต ์ฝ๋๋ฒ ์ด์ค ์ฌ์ฉ.
- ๋ชจ๋ ํ๋ซํผ์์ ์ผ๊ด์ ์ผ๋ก ๋์



9๏ธโฃ ์คํ ์์ค ๋ฐ ์ปค๋ฎค๋ํฐ
- GitHub์ ์คํ ์์ค๋ก ๊ณต๊ฐ๋จ.
- Swift Forums์์ ๊ธฐ๋ฅ ์ ์, ํ ๋ก , ํผ๋๋ฐฑ ๊ฐ๋ฅ.
- ํฅํ swiftlang ์กฐ์ง์ผ๋ก ์ด์ ์์ .
โ ๊ฒฐ๋ก
Swift Testing์ Swift ์ธ์ด์ ์ฒ ํ๊ณผ ๋์์ฑ ๊ธฐ๋ฅ์ ๋ฐ์ํ์ฌ ํ ์คํธ์ ์์ฐ์ฑ๊ณผ ์ ํ์ฑ์ ๊ทน๋ํํ ๋๊ตฌ์ ๋๋ค. ์ปค๋ฎค๋ํฐ ์ค์ฌ์ ์คํ์์ค๋ก ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ฉฐ, ๊ธฐ์กด XCTest์์ ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์ ๋ ์ฉ์ดํฉ๋๋ค.
'iOS > WWDC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| WWDC24) SwiftUI ํต์ฌ ๊ธฐ๋ฅ (2) | 2025.06.15 |
|---|---|
| WWDC25) Xcode์ ์๋ก์ด ๊ธฐ๋ฅ (6) | 2025.06.13 |
| WWDC24) Swift testing์ผ๋ก ํ ์คํธ ์ฌํํ๊ธฐ (0) | 2025.05.25 |
| WWDC24) Swift์ ์ฑ๋ฅ ์ดํด๋ณด๊ธฐ (0) | 2025.05.18 |
| ๐ฑ WWDC 2024 - [Analyze heap memory] ์ ๋ฆฌ ๋ฐ ๋ฆฌ๋ทฐ (3) | 2025.05.17 |