1
0
Fork 0

Add tests

redux
Jonas Franz 2 years ago
parent 52dcc87b1c
commit c3c4573b26
  1. 13
      test/cart_increment_test.dart
  2. 14
      test/product_service_mock.dart
  3. 32
      test/total_price_text_test.dart

@ -0,0 +1,13 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:thesis_shop/redux/actions/actions.dart';
import 'package:thesis_shop/redux/store.dart';
import 'product_service_mock.dart';
void main() {
test('cart increment test', () {
final store = createStore(productService: MockedProductService());
store.dispatch(IncrementProductAction(product: demoProducts.first));
expect(store.state.productQuantities[demoProducts.first.title], 1);
});
}

@ -1,15 +1,17 @@
import 'package:thesis_shop/models/product.dart';
import 'package:thesis_shop/service/product_service.dart';
const demoProducts = [
Product(title: 'Bananen', price: 3),
Product(title: 'Äpfel', price: 2),
Product(title: 'Birnen', price: 2.5),
Product(title: 'Kirschen', price: 1.2),
];
class MockedProductService implements ProductService {
@override
Future<List<Product>> fetchProducts() async {
return const [
Product(title: 'Bananen', price: 3),
Product(title: 'Äpfel', price: 2),
Product(title: 'Birnen', price: 2.5),
Product(title: 'Kirschen', price: 1.2),
];
return demoProducts;
}
@override

@ -0,0 +1,32 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:redux/redux.dart';
import 'package:thesis_shop/models/remote_resource.dart';
import 'package:thesis_shop/redux/state.dart';
import 'package:thesis_shop/screens/cart/total_price_text.dart';
class AppStateMock extends AppState {
AppStateMock()
: super(
isSignedIn: false,
remoteProducts: const RemoteResource.loading(),
productQuantities: {});
@override
double get totalPrice => 10.0;
}
void main() {
testWidgets('test total price text', (tester) async {
final store = Store<AppState>((s, _) => s, initialState: AppStateMock());
await tester.pumpWidget(
MaterialApp(
home: StoreProvider<AppState>(
store: store,
child: const TotalPriceText(),
),
),
);
expect(find.text('Gesamtpreis: 10.00€'), findsOneWidget);
});
}
Loading…
Cancel
Save