Skip to content

Instantly share code, notes, and snippets.

View codestronaut's full-sized avatar
🙌
Be Grateful

Aditya Rohman codestronaut

🙌
Be Grateful
View GitHub Profile
abstract class AuthRepository {
Future<Either<Failure, Session>> login(
{required String email, required String password});
}
class AuthRepositoryImpl implements AuthRepository {
const AuthRepositoryImpl(this.account);
final Account account;
@override
@GenerateMocks([Account])
void main() {
/// Setup dependencies for the repo
late MockAccount _mockAccount;
late AuthRepositoryImpl _repository;
setUp((){
_mockAccount = MockAccount();
_repository = AuthRepositoryImpl(_mockAccount);
});
import 'package:appwrite/appwrite.dart';
@GenerateMocks([Account])
void main() {
...
}
Widget _makeTestableWidget(Widget body) {
return ChangeNotifierProvider<MovieDetailNotifier>.value(
value: mockNotifier,
child: MaterialApp(
home: body,
),
);
}
{
"coord": {
"lon": 106.8451,
"lat": -6.2146
},
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
. Unit Widget Integration
Tingkat Percaya Diri Rendah Sedang Tinggi
Biaya Rendah Sedang Tinggi
Kebergantungan (Dependencies) Sedikit Sedang Banyak
Kecepatan Cepat Cepat Lambat
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:ditonton/main.dart' as app;
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
HomeRobot homeRobot;
...
return Scaffold(
...
leading: IconButton(
key: const Key('drawerButton'),
icon: const Icon(Icons.menu),
splashRadius: 20.0,
onPressed: toggle,
),
...
);
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
class HomeRobot {
final WidgetTester tester;
HomeRobot(this.tester);
Future<void> clickNavigationDrawerButton() async {
final drawerButtonFinder = find.byKey(Key('drawerButton'));
@GenerateMocks([MovieDetailNotifier])
void main() {
late MockMovieDetailNotifier mockNotifier;
setUp(() {
mockNotifier = MockMovieDetailNotifier();
});
Widget _makeTestableWidget(Widget body) {
return ChangeNotifierProvider<MovieDetailNotifier>.value(