Este paquete de Flutter permite interactuar con la Fake Store API, una API falsa que proporciona datos de productos, carritos y usuarios para propósitos de prueba y desarrollo.
- Obtener una lista de productos.
- Obtener una lista de carritos.
Para utilizar este paquete, añade fake_store_package a las dependencias de tu proyecto en el archivo pubspec.yaml:
dependencies:
flutter:
sdk: flutter
fake_store_package:
git:
url: https://github.com/Carl0395/fake_store_package.gitimport 'package:fake_store_package/fake_store_package.dart';
void main() async {
final products = await FakeStoreApi.getProducts();
for (var product in products) {
print('${product.id}: ${product.title} - \$${product.price}');
}
}👉 Para ver un ejemplo completo, consulta la carpeta example/ del repositorio.
- Obtener una lista de productos.
final result = await FakeStorePackage.getProducts();- Obtener todos los carritos de compra.
final result = await FakeStorePackage.getCarts();❗ Manejo de errores
El paquete utiliza el tipo Either (de package:dartz) para manejar errores de forma funcional:
result.fold(
(error) => print('Ocurrió un error: ${error.message}'),
(data) => print('Éxito'),
);Tipos de errores posibles (Failure):
- BadRequestFailure
- ServerFailure
- ParsingFailure
- ConnectionFailure
- UnauthorizedFailure
- UnknownFailure
🧱 Modelos disponibles
- ProductModel
- CartModel
- ProductQuantityModel
- RatingModel
🔧 Internamente el paquete usa:
- dartz para manejo de errores
- http para peticiones HTTP
- Un HttpHelper interno para centralizar llamadas a la API
Este paquete incluye una suite de pruebas unitarias para garantizar la fiabilidad y robustez de las funcionalidades principales. A continuación, se detallan las pruebas implementadas y cómo ejecutarlas.
Las pruebas se encuentran en el directorio test/ y cubren los siguientes módulos:
-
carts_api_test.dart: Pruebas para la claseCartsApi, incluyendo:getCarts(): Verifica la obtención de la lista de carritos.getCart(String id): Verifica la obtención de un carrito específico por ID.
-
products_api_test.dart: Pruebas para la claseProductsApi, incluyendo:getProducts(): Verifica la obtención de la lista de productos.getCategories(): Verifica las obtención de la lista de categorías.getProductsByCategory(String category): Verifica la obtención de productos por categoría.
-
users_api_test.dart: Pruebas para la claseUsersApi, incluyendo:getUser(String id): Verifica la obtención de un usuario por id.createUser(UserModel user): Verifica la creación de un usuario.
-
models_test.dart: Pruebas para los modelos de datos, incluyendo:CartModel: Verifica la serialización y deserialización.ProductModel: Verifica la serialización y deserialización.ProductQuantityModel: Verifica la serialización y deserialización.RatingModel: Verifica la serialización y deserialización.UserModel: Verifica la serialización y deserialización.
-
failures_test.dart: Pruebas para la claseFailures, incluyendo:BadRequestFailure: Verifica la instancia de la clase y sus metodos.UnauthorizedFailure: Verifica la instancia de la clase y sus metodos.ServerFailure: Verifica la instancia de la clase y sus metodos.ParsingFailure: Verifica la instancia de la clase y sus metodos.ConnectionFailure: Verifica la instancia de la clase y sus metodos.UnknownFailure: Verifica la instancia de la clase y sus metodos.
- Framework de Pruebas: flutter_test
- Mocking: mocktail
- Programación Funcional: dartz
Para ejecutar todas las pruebas unitarias, utiliza el siguiente comando en la raíz del proyecto:
flutter test