'BloC testing "The method xxx isn't defined for the type 'Object'" error
I am trying to learn testing with bloc. Followed the procedure as stated in docs.
I have lib/cubit/counter_cubit.dart and lib/cubit/counterState.dart files
counter_cubit.dart is:
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
part 'counter_state.dart';
class CounterCubit extends Cubit<CounterState> {
CounterCubit() : super(CounterState(counterValue: 0, wasIncremented: false));
void increment() => emit(
CounterState(counterValue: state.counterValue + 1, wasIncremented: true));
void decrement() => emit(CounterState(
counterValue: state.counterValue - 1, wasIncremented: false));
}
counter_state.dart is:
part of 'counter_cubit.dart';
class CounterState extends Equatable {
int counterValue;
bool wasIncremented;
CounterState({
required this.counterValue,
required this.wasIncremented,
});
@override
List<Object?> get props => [counterValue, wasIncremented];
}
and the counter_cubit_test.dart is:
import 'package:bloc_basics/cubit/counter_cubit.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group("CounterCubit", () {
final CounterCubit counterCubit = CounterCubit();
test(
"the initial state for the CounterCubitis CounterState(counterValue:0, wasIncremented:false)",
() {
expect(counterCubit.state,
CounterState(counterValue: 0, wasIncremented: false));
});
blocTest(
"The cubit should emit a CounterState(countervalue:1, wasIncremented:true) when cubit.increment() is called.",
build: () => counterCubit,
act: (cubit) => cubit!.increment(),
expect: () => CounterState(counterValue: 1, wasIncremented: true));
});
}
That line act: (cubit) => cubit!.increment() in counter_cubit_test.dart is throwing The method 'increment' isn't defined for the type 'Object'. Error.
Couldn't figure out.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
