import 'package:{{ name }}/features/login/domain/entities/token.dart'; import 'package:{{ name }}/features/login/domain/repositories/login_repository.dart'; import 'package:{{ name }}/features/login/domain/usecases/login_user.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/mockito.dart'; class MockLoginRepository extends Mock implements LoginRepository {} void main() { MockLoginRepository mockLoginRepository = MockLoginRepository(); LoginUser useCase = LoginUser(repository: mockLoginRepository); const tEmail = "test@test.com"; const Token tToken = Token(accessToken: ""); test('should return a User object with relevant email and token', () async { // arrage when(mockLoginRepository.loginUser(tEmail, 'test')) .thenAnswer((_) async => const Right(tToken)); //act final result = await useCase(const LoginParams(email: tEmail, password: "test")); //assert expect(result, const Right(tToken)); verify(mockLoginRepository.loginUser(tEmail, "test")); verifyNoMoreInteractions(mockLoginRepository); }); }