| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
./make generate |
Demo μ±μ ν¬ν¨ν΄ Xcode νλ‘μ νΈ μμ± |
./make build |
clean β install β generate μμ°¨ μ€ν |
./make install |
μμ‘΄μ± μ€μΉ |
./make clean |
νλ‘μ νΈ μ 리 |
# λΉλ
xcodebuild -workspace DDDAttendance.xcworkspace -scheme DDDAttendance build
# ν
μ€νΈ μ€ν
xcodebuild -workspace DDDAttendance.xcworkspace -scheme DDDAttendance test- νμΌ μμ±/μμ μ: λ°λμ
./make generateμ€ν Project.swiftμμ μ: λ°λμ./make generateμ€ν- μμ‘΄μ± μΆκ°/μ κ±° μ:
./make installβ./make generateμμλ‘ μ€ν - Tuist glob νΉμ±: generate μμ΄λ Xcodeμ μ νμΌμ΄ λ°μλμ§ μμ
// TCA TestStore ν¨ν΄
func testLogin() async {
let store = TestStore(initialState: LoginFeature.State()) {
LoginFeature()
}
await store.send(.loginButtonTapped) {
$0.isLoading = true
}
await store.receive(.loginResponse(.success(mockUser))) {
$0.isLoading = false
$0.user = mockUser
}
}- TCA State:
@ObservableState+EquatableꡬνμΌλ‘ λΆνμν λ λλ§ λ°©μ§ - Effect μ΅μ ν:
.runλ΄μμ Heavy μμ μ²λ¦¬, UI μ λ°μ΄νΈλ MainActor - μμ‘΄μ± μ£Όμ : μ±κΈν€ ν¨ν΄ μ΅μν, Interface κΈ°λ° ν μ€νΈ μ©μ΄μ± ν보
μ΄ κ°μ΄λλ μμ΄μ νΈλ€μ΄ κ°λ° νκ²½ μ€μ μ λΆμνκ³ μ΅μ νν λ μ°Έκ³ νλ κΈ°μ€μ λλ€.