Skip to content

Instantly share code, notes, and snippets.

@Bharathh-Raj
Bharathh-Raj / insta_post.dart
Created February 24, 2024 02:27
Insta Post Model and Mock Objects
class InstagramPost {
final String username;
final String userProfilePicUrl;
final String postId;
final String imageUrl;
final String caption;
final int likes;
final List<Comment> comments;
final DateTime timestamp;
@Bharathh-Raj
Bharathh-Raj / main.dart
Created November 26, 2022 06:45
powerful-illusion-0942
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
void main(){
Wallet btc = BTCWallet(BTCWalletDC("", 0));
btc.derive();
btc.walletDC.balance;
}
// @freezed
// class WalletDC with _$WalletDC {
// const factory WalletDC.eth(String phrase, double balance) = ETHWalletDC;
// const factory WalletDC.btc(String phrase, double balance) = BTCWalletDC;
class MockRemoteDataSource extends Mock implements RemoteDateSource{}
void main(){
test("fetch() should return an instance of student on remoteDataSource's fetch success", () {
//Arrange
MockRemoteDateSource mockDS = MockRemoteDateSource();
Repository repo = Repository(mockDS);
when(mockDS.fetch()).thenReturn("Mock Result");
//Act
final result = repo.fetch();
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'repository_test.mocks.dart'; // Don't forget to include this
@GenerateMocks([RemoteDateSource])
void main() {
test("fetch() should return an instance of student on remoteDataSource's fetch success", () {
//Arrange
MockRemoteDateSource mockDS = MockRemoteDateSource();
Repository repo = Repository(mockDS);
//Note: This code is just for demonstration purpose
class MockRemoteDateSourceSuccess extends DataSource {
@override
Future<String> fetch() async {
return Future.value("Mock Result");
}
}
class MockRemoteDateSourceFailure extends DataSource {
abstract class DataSource {
Future<String> fetch();
}
class RemoteDateSource extends DataSource {
@override
Future<String> fetch() async {
final result = await httpClient.get("", 0, "");
return result;
}
//Note: This code is just for demonstration purpose
void main(){
test("fetch() should return an instance of student on remoteDataSource's fetch success", () {
Repository repo = Repository(MockRemoteDateSourceSuccess());
final result = repo.fetch();
expect(result, isInstanceOf<Student>());
});
test("fetch() should throw an exception on remoteDataSource's fetch throws any exception", () {
//Note: This code is just for demonstration purpose
class MockRemoteDateSourceSuccess implements RemoteDateSource {
@override
Future<String> fetch() async {
return Future.value("Mock Result");
}
}
class MockRemoteDateSourceFailure implements RemoteDateSource {
@Bharathh-Raj
Bharathh-Raj / repository.dart
Last active November 2, 2022 08:45
Flutter testing - Repository
//Note: This code is just for demonstration purpose
class Repository {
final RemoteDateSource remoteDateSource;
Repository(this.remoteDateSource);
Future<Student> fetch() async {
late String result;
try {
result = await remoteDateSource.fetch();