Menguji ViewModels secara Unit
Uji logika bisnis secara terisolasi.
Menguji ViewModels secara Unit adalah pelajaran SwiftUI Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SwiftUI Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SwiftUI Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Why Test the ViewModel?
Your ViewModel holds the logic, so it is the perfect place to test. You can check behavior without ever launching the full UI. 🧪
Logic Lives Apart from Views
Because a ViewModel is a plain class, you can create one in a test and call its methods directly. This keeps your tests fast and focused.
Meet XCTest
Apple's testing framework is XCTest. You import it and write test classes that Xcode runs for you with a single keystroke.
import XCTest
@testable import MyAppA Test Class
A XCTestCase subclass groups related tests. Every test method name must start with the word test so Xcode discovers it automatically.
final class CounterVMTests: XCTestCase {
}Arrange, Act, Assert
A clean test follows three steps: arrange the objects, act by calling a method, then assert the result is what you expected.
Create the ViewModel
Start by making a fresh instance of the ViewModel inside your test. A new object per test keeps each one independent and reliable.
let vm = CounterViewModel()Call a Method
Now act on it. Call the method you want to verify, just like your view would when a button is tapped. ➡️
vm.increment()Assert with XCTAssertEqual
Use XCTAssertEqual to confirm a value matches what you expect. If it differs, the test fails with a clear message.
XCTAssertEqual(vm.count, 1)Testing Booleans
For true or false results, reach for XCTAssertTrue and XCTAssertFalse. They read clearly and document your intent.
XCTAssertTrue(vm.isEmpty)Test Edge Cases
Good tests cover more than the happy path. Check empty input, limits, and unexpected values so bugs surface before your users do.
Run with One Shortcut
Press Command-U in Xcode to run every test. Green checkmarks mean your logic still works after each change you make.
Quick Check
Which assertion confirms two values are equal?
Recap
You learned to test a ViewModel in isolation: create it, call a method, then assert the result with XCTest. Fast, focused, dependable. 🎉
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menguji ViewModels secara Unit” gratis?
Ya — teks lengkap “Menguji ViewModels secara Unit” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SwiftUI Academy, upgrade ke CoddyKit PRO. Kursus SwiftUI Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menguji ViewModels secara Unit”?
Uji logika bisnis secara terisolasi. Kamu berlatih SwiftUI Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SwiftUI Academy?
Tidak diperlukan pengalaman sebelumnya. SwiftUI Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Menguji ViewModels secara Unit” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SwiftUI Academy ini?
Ya. Setiap pelajaran SwiftUI Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menguji ViewModels secara Unit
- Menguji Kode Asinkron
- Pengujian UI dengan XCUITest
- Pengujian Berbasis Snapshot & Preview