Testes Unitários e Simulação
Escreva testes unitários rápidos e isolados para a lógica de negócios do Flutter e use simulações para testar código que depende de serviços e APIs.
Testes Unitários e Simulação é uma aula grátis de Flutter Mobile Development no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flutter Mobile Development, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flutter Mobile Development inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
The Testing Pyramid
You have seen widget and integration tests. At the base sits the fastest layer: unit tests that verify a single function or class in isolation.
- Many unit tests (fast)
- Fewer widget tests
- Even fewer integration tests (slow)
Anatomy of a Unit Test
A unit test uses test() and expect() from the test package.
import 'package:test/test.dart';
void main() {
test('adds two numbers', () {
expect(2 + 3, equals(5));
});
}Testing a Class
Instantiate the class under test and assert on its behaviour.
test('counter increments', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});Matchers
Matchers express expectations clearly.
equals(x)isTrue/isNullthrowsExceptioncontains(x)
expect(list, contains('apple'));
expect(() => parse('bad'), throwsFormatException);Grouping Tests
Use group() to organize related tests and share setup.
group('Cart', () {
test('starts empty', () { ... });
test('adds items', () { ... });
});setUp & tearDown
setUp runs before each test; tearDown runs after — perfect for fresh fixtures.
late Cart cart;
setUp(() => cart = Cart());
tearDown(() => cart.clear());The Problem of Dependencies
What if your class calls a real API or database? Tests would be slow and flaky. The solution is mocking — replacing dependencies with fakes you control.
Mockito Setup
Add mockito and build_runner, then annotate to generate mocks.
@GenerateMocks([ApiService])
void main() {}
// flutter pub run build_runner buildStubbing Methods
Use when(...).thenReturn(...) to define what a mock returns.
final mockApi = MockApiService();
when(mockApi.fetchUser()).thenAnswer((_) async => User('Ada'));Verifying Interactions
verify confirms a method was called the expected number of times.
await repository.loadUser();
verify(mockApi.fetchUser()).called(1);Testing Async Code
Mark the test body async and await futures, or use the completes matcher.
test('loads data', () async {
final result = await repo.load();
expect(result, isNotEmpty);
});Quick Check
Why would you use a mock in a unit test?
Recap
You learned unit testing and mocking:
- test/expect/matchers and group/setUp
- Mockito to generate mocks
- when().thenReturn and verify().called
- Testing async code
Unit tests give you fast confidence in your business logic.
Perguntas Frequentes
A aula “Testes Unitários e Simulação” é grátis?
Sim — o texto completo de “Testes Unitários e Simulação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flutter Mobile Development, atualize para CoddyKit PRO. O curso de Flutter Mobile Development inclui 4 aulas no total.
O que vou aprender em “Testes Unitários e Simulação”?
Escreva testes unitários rápidos e isolados para a lógica de negócios do Flutter e use simulações para testar código que depende de serviços e APIs. Você pratica Flutter Mobile Development com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flutter Mobile Development?
Nenhuma experiência prévia é necessária. Flutter Mobile Development no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Testes Unitários e Simulação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flutter Mobile Development?
Sim. Cada aula de Flutter Mobile Development inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Princípios de testes de widgets
- Testes de integração
- Ferramentas e técnicas de depuração
- Testes Unitários e Simulação