Pruebas unitarias de ViewModels
Pruebe la lógica de negocio de forma aislada.
Pruebas unitarias de ViewModels es una lección gratuita de SwiftUI Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SwiftUI Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SwiftUI Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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. 🎉
Preguntas frecuentes
¿La lección «Pruebas unitarias de ViewModels» es gratis?
Sí — el texto completo de «Pruebas unitarias de ViewModels» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SwiftUI Academy, actualiza a CoddyKit PRO. El curso de SwiftUI Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Pruebas unitarias de ViewModels»?
Pruebe la lógica de negocio de forma aislada. Practicas SwiftUI Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SwiftUI Academy?
No se requiere experiencia previa. SwiftUI Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Pruebas unitarias de ViewModels»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SwiftUI Academy?
Sí. Cada lección de SwiftUI Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Pruebas unitarias de ViewModels
- Probar código asíncrono
- Pruebas de interfaz con XCUITest
- Pruebas con snapshots y previews